我运行烧瓶应用程序,当我使用5000端口时,我可以从专用的IP地址访问我的应用程序。现在,我想将域绑定到这个应用程序,所以,我需要apache2 + wsgi,在这里我遇到了一些麻烦。
我阅读教程的语气如何使用apache2 + wsgi调试烧瓶app,但我无法理解我的路由器和apache中的设置ip和端口的正确性。我尝试这个设置:
1.我对apache的虚拟主机设置:
<VirtualHost *>
ServerName 100.100.100.100
Serveradmin admin@100.100.100.100
WSGIDaemonProcess app user=gpuserver group=gpuserver threads=3
WSGIScriptAlias / /var/www/myflaskapp/app.wsgi
DocumentRoot /var/www/myflaskapp
<Directory /var/www/myflaskapp>
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
其中100.100.100.100 - 我的专用IP地址
在使用ubuntu的计算机上我使用静态IP地址192.168.1.219,并在路由器上为端口5000设置端口转发
app.wsgi:
import sys
进口伐木
logging.basicConfig(流= sys.stderr)
sys.path.insert(0,'/ var / www / stepscanner.ru /')
从应用程序导入应用程序作为应用程序
app.py:
#这里的一些代码
if __name__ =='__ main__':
app.run(debug = False,host ='192.168.1.219',port = 5000)
但是使用哪种配置我无法从外部计算机访问来自地址100.100.100.100:5000的站点。哪里弄错了?
答案 0 :(得分:0)
如果您的配置中仍有默认VirtualHost
,则无效。在现有默认VirtualHost
内添加:
WSGIDaemonProcess app user=gpuserver group=gpuserver threads=3
WSGIScriptAlias / /var/www/myflaskapp/app.wsgi
DocumentRoot /var/www/myflaskapp
<Directory /var/www/myflaskapp>
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
它不起作用的原因是ServerName
需要是主机名,而不是基于名称的虚拟主机工作的IP地址。