在同一IP(Apache)上为不同的virtualenv提供多个Django项目

时间:2018-06-09 10:31:29

标签: python django virtualenv mod-wsgi wsgi

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

一般来说,您可以name-based virtual hosts为其配置DNS(将site-1.example.comsite-2.example.com映射到您的IP地址),或者run different sites on different ports