![使用mod_wsgi运行具有不同域名的多个flask应用程序](https://linux22.com/image/774490/%E4%BD%BF%E7%94%A8mod_wsgi%E8%BF%90%E8%A1%8C%E5%85%B7%E6%9C%89%E4%B8%8D%E5%90%8C%E5%9F%9F%E5%90%8D%E7%9A%84%E5%A4%9A%E4%B8%AAflask%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我们正在尝试使用 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>