apache 两个python站点的多个虚拟主机,一个占主导地位

cczfrluj  于 2023-02-24  发布在  Apache
关注(0)|答案(1)|浏览(135)

我正在尝试在Mac服务器上配置一个Apache服务器来同时服务Web2 Py应用程序和Flask应用程序。这已经变成了一个温和的噩梦。我希望用户能够访问以下URL
http:/my.domain.com/-Web2 py网站
http:/my.domain.com/suburl-培养瓶位置
不幸的是,当我访问subll时,它总是把我带到Web2 py站点(然后它就崩溃了,因为没有名为subll的应用程序)。

NameVirtualHost *:80
# Flask Site
<VirtualHost *:80>
   ServerName my.domain.com/suburl
   WSGIDaemonProcess flask-suburl user=_www group=_www
   WSGIProcessGroup flask-suburl
   WSGIScriptAlias /suburl /Users/myname/suburl/app.wsgi
   <Directory /Users/myname/suburl>
      WSGIApplicationGroup %{GLOBAL}
      Order deny,allow
      Allow from all
   </Directory>
</VirtualHost>

# Web2py Site
<VirtualHost *:80>
   ServerName my.domain.com
   WSGIDaemonProcess web2py-main user=_www group=_www
   WSGIProcessGroup web2py-main
   WSGIScriptAlias / /Users/myname/web2py/wsgihandler.py
   <Directory /Users/myname/web2py>
      AllowOverride None
      Order Allow,Deny
      Deny from all
      <Files wsgihandler.py>
         Allow from all
      </Files>
   </Directory>
</VirtualHost>

重新排序两个VirtualHost定义没有任何作用,删除Web2 py站点允许我访问Flask站点。
我不希望将它们合并到一个VirtualHost中,因为这会导致两个应用程序共享同一个Python解释器的问题,而且某些C扩展显然会出错。
我已经更改了域和其他一些名称以隐藏受保护的信息。我还排除了一些处理静态子文件夹服务的AliasMatch命令。在端口443上还有另一个用于SSH服务器的VirtualHost,但我没有包括它,因为我希望它不会影响任何事情。
那么,我究竟如何才能做到这一点,使我可以访问这两个网站,而不是Web2 py网站吞噬一切?

yh2wf1be

yh2wf1be1#

对于任何来到这里的人来说,我已经解决了我的问题。这是一个简单的错误,我可以发誓我以前试过这样做。
在Flask站点的配置中,我应该执行以下操作:

ServerName my.domain.com
...
WSGIScriptAlias /suburl /Users/myname/suburl/app.wsgi

请注意,ServerName的末尾不再有/suburl,而是要确保将其添加到WSGIScriptAlias的第一个参数中,当您查看WSGIScriptAlias的文档时,推理就会变得很清楚;第一个参数是正在访问的URL路径。ServerName必须保持纯值。

相关问题