我正在尝试将我的Django应用程序部署到具有Ubuntu 18.04的Azure虚拟机。
8000
使用sudo ufw allow 8000
进行测试安装所有要求之后,当我运行命令时:
python manage.py runserver 0.0.0.0:8000
该应用程序运行,但是当我打开URL时::8000 /
它不会在控制台中返回任何错误
更新: 只需通过在
8000
下的azure门户中手动添加端口Inbound port rules
即可解决。 但是:当我尝试通过gunicorn运行它时:
gunicorn --pythonpath PROJECT PROJECT.wsgi:application --log-file - --bind 0.0.0.0:80
它返回另一个错误,如下所示:
[30007] [错误]无法连接到('0.0.0.0',80)
这有什么问题吗?
答案 0 :(得分:0)
您还需要将0.0.0.0:80
添加到入站端口规则。截至目前,它仅接受8000个端口请求。
然后重试:
gunicorn --pythonpath PROJECT PROJECT.wsgi:application --log-file -b 0.0.0.0:80
在Azure中添加80端口的步骤:
您可以通过在子网或VM网络上创建网络筛选器来打开Azure虚拟机(VM)的端口或创建终结点 接口。您放置这些过滤器,这些过滤器可控制入站和 资源附加的网络安全组上的出站流量 接收流量。
本文中的示例演示了如何创建网络 使用标准TCP端口80的过滤器(假设您已经 启动适当的服务,并打开任何操作系统防火墙规则 VM)。
1-创建配置为在以下位置提供Web请求的VM之后 标准TCP端口80,您可以:
2-创建一个网络安全组。
3-创建允许流量的入站安全规则,并将值分配给 以下设置:
4-目标端口范围:80
5-源端口范围:*(允许任何源端口)
6-优先级值:输入小于65,500且更高的值 优先级高于默认的“全部拒绝”入站规则。
将网络安全组与VM网络接口相关联,或者 子网。
答案 1 :(得分:0)
要解决有关无法通过python manage.py runserver 0.0.0.0:8000
运行的应用程序的问题,有两个原因可以引起问题。
8000
添加新的端口规则以对其进行修复,如下图。图1.在图中添加此规则以允许端口8000的入站请求
图2.添加入站安全规则对话框
编辑settings.py
文件,将允许的主机或IP添加到ALLOWED_HOSTS
数组中,如下所示。
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['<your vm ip or DNS name>', 'localhost', '127.0.0.1']
然后运行python manage.py runserver 0.0.0.0:8000
,您可以看到Django默认索引页,而浏览器中没有任何错误,如下图所示。
注意:gunicorn
服务器在端口80
上侦听,这是默认的允许入站端口规则。