在同一 IP (Apache) 的不同 virtualenv 中服务多个 Django 项目

Serving multiple Django projects in different virtualenv at the same IP (Apache)

我正在尝试在 Apache 的同一 IP 地址上的不同 virtualenv 上为两个 Django 项目提供服务。

我的第一个站点在 http://myip/site-1 第二个:http://myip/site-2

当我 运行 http://myip/site-1 时,Apache 毫无问题地提供它,但是当我 运行 第二个 (http://myip/site-2) 时,它会引发以下问题:

The requested URL /site-2/ was not found on this server.

因为它在第一个站点的文档根目录中搜索。

这是我的 apache.conf

<VirtualHost *:80>
  ServerName site-1.example.com
  DocumentRoot /home/venv/site-1

 # adjust the following line to match your Python path 
 WSGIDaemonProcess site-1.example.com processes=2 threads=15 display-name=%{GROUP} python-home=/home/venv/lib/python2.7
 WSGIProcessGroup site-1.example.com
 WSGIScriptAlias / /home/venv/site-1/site-1/wsgi.py

 <directory /home/venv/site-1>
   AllowOverride all
   Require all granted
   Options FollowSymlinks
 </directory>

 Alias /static/ /home/venv/site-1/static_root/

 <Directory /home/venv/site-1/static_root>
   AllowOverride all
   Require all granted
   Options FollowSymlinks
 </Directory>

</VirtualHost>

<VirtualHost *:80>
  ServerName site-2.example.com
  DocumentRoot /home/venv_mob/site-2

  # adjust the following line to match your Python path 
  WSGIDaemonProcess site-2.example.com processes=2 threads=15 display-name=%{GROUP} python-home=/home/venv_mob/lib/python2.7
  WSGIProcessGroup site-2.example.com
  WSGIScriptAlias / /home/venv_mob/site-2/site-2/wsgi.py

<directory /home/venv_mob/site-2>
   AllowOverride all
   Require all granted
   Options FollowSymlinks
 </directory>

 Alias /static/ /home/venv_mob/site-2/static_root/

<Directory /home/venv_mob/site-2/static_root>
  AllowOverride all
  Require all granted
  Options FollowSymlinks
 </Directory>

</VirtualHost>

我尝试了很多在网上找到的解决方案,但问题仍然存在。

有什么想法吗?

您必须连接到 http://site-1.example.com(使用示例中的术语),而不是 http://myip/site-1。并且 http://site-2.example.com,而不是 http://myip/site-2

一般来说可以name-based virtual hosts for which you need to configure DNS (mapping site-1.example.com and site-2.example.com to your IP address) or you can run different sites on different ports.