我们正在尝试使用 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>