带烧瓶的apache wsgi只打开默认的apache页面

apache wsgi with flask opens only default apache page

我正在尝试 运行 apache wsgi 上的 flask 应用程序,这是我的虚拟主机文件:

<VirtualHost *:80>
            ServerName 127.0.0.1
            ServerAdmin admin@128.199.248.116
            WSGIScriptAlias / /var/www/classifier/classifier.wsgi
            <Directory /var/www/classifier/classifier/>
                    WSGIApplicationGroup %{GLOBAL}
                    Order allow,deny
                    Allow from all
            </Directory>
            Alias /templates/ /var/www/classifier/classifier/templates/
            <Directory /var/www/classifier/classifier/templates/>
                    WSGIApplicationGroup %{GLOBAL}
                    Order allow,deny
                    Allow from all
            </Directory>
            ErrorLog /var/www/classifier/error.log
            LogLevel warn
            CustomLog /var/www/classifier/access.log combined</VirtualHost>

这是我的 wsgi 文件:

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/classifier/")

from classifier.server import app as application
application.secret_key = ''

当我尝试通过外部 IP 地址访问服务器时,我得到的是 Apache2 Ubuntu 默认页面。我在这里做错了什么?

~

您不应该将 127.0.0.1 用作 ServerName 用于 VirtualHost。它应该是将要访问的站点的实际主机名。

如果您只想通过 IP 地址或 localhost 访问它,您需要将您的配置添加到默认(第一个)VirtualHost 配置,而不是创建一个单独的配置一.

顺便说一句,强烈建议您使用 mod_wsgi 的守护程序模式,而不是像现在这样嵌入模式。

在我的情况下,如果你想通过外部IP地址访问服务器,你必须先禁用默认站点配置。

sudo a2dissite 000-default.conf
service apache2 restart