无法使用apache从80端口的专用IP地址访问烧瓶应用程序

时间:2018-02-15 15:00:45

标签: python-3.x flask apache2 ubuntu-16.04 mod-wsgi

我运行烧瓶应用程序,当我使用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地址

  1. 在使用ubuntu的计算机上我使用静态IP地址192.168.1.219,并在路由器上为端口5000设置端口转发

  2. app.wsgi:

    import sys
    进口伐木 logging.basicConfig(流= sys.stderr)
    sys.path.insert(0,'/ var / www / stepscanner.ru /')
    从应用程序导入应用程序作为应用程序

  3. app.py:

    #这里的一些代码
    if __name__ =='__ main__':
        app.run(debug = False,host ='192.168.1.219',port = 5000)

  4. 但是使用哪种配置我无法从外部计算机访问来自地址100.100.100.100:5000的站点。哪里弄错了?

1 个答案:

答案 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地址。