使用mod_wsgi运行具有不同域名的多个flask应用程序

使用mod_wsgi运行具有不同域名的多个flask应用程序

我们正在尝试使用 mod_wsgi + Apache2 从同一台服务器运行具有不同域名的 2 个不同的 flask 应用程序。

这是在httpd.conf中配置的设置

# For www.yyy.com
WSGIDaemonProcess yyy python-path=/var/www/yyy
WSGIScriptAlias / /var/www/yy/wsgi.py process-group=yyy application-group=%{GLOBAL}

# For www.zzz.com
WSGIDaemonProcess zzz python-path=/var/www/zzz
WSGIScriptAlias / /var/www/zzz/wsgi.py process-group=zzz application-group=%{GLOBAL}

并创建了类似于

<VirtualHost *:80>
        ServerName www.yyy.com
        ServerAdmin joel
        DocumentRoot /var/www/yyy
        ErrorLog /var/log/httpd/error.log
        CustomLog /var/log/httpd/access.log combined
        Alias /static /var/www/yyy/static
        <Directory /var/www/yyy/static>
                Require all granted
        </Directory>
        <Directory /var/www/yyy>
        <Files wsgi.py>
                Require all granted
        </Files>
        </Directory>
</VirtualHost>

但无论我们尝试什么,我们最终都只能得到在 httpd.conf 中配置的第一个应用程序。

答案1

我的疑问得到了 mod_wsgi 邮件列表的 Graham Dumpleton 的回答。他要求我从 httpd.conf 中删除所有 mod_wsgi 设置,并将它们移动到虚拟主机配置文件 /etc/httpd/conf.d/yyy.conf 和 zzz.conf 中,如下所示

<VirtualHost *:80>
        ServerName www.yyy.com
        ServerAdmin joel
        DocumentRoot /var/www/yyy
        ErrorLog /var/log/httpd/error.log
        CustomLog /var/log/httpd/access.log combined
        WSGIDaemonProcess yyy python-path=/var/www/yyy
        WSGIScriptAlias / /var/www/yy/wsgi.py process-group=yyy application-group=%{GLOBAL}
        Alias /static /var/www/yyy/static
        <Directory /var/www/yyy/static>
                Require all granted
        </Directory>
        <Directory /var/www/yyy>
        <Files wsgi.py>
                Require all granted
        </Files>
        </Directory>
</VirtualHost>

相关内容