我需要在同一域名下部署两个Django Cms项目。我需要在调用以下域时检索这两个站点。 http://rndbkw.tk http://rndbkw.tk/blog
httpd.conf
中包含两个wsgi配置for http://rndbkw.tk
ServerName rndbkw.tk
WSGIDaemonProcess rnd python-path=/home/rndbkw/djangocms:/home/rndbkw/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup rnd
WSGIScriptAlias / /home/rndbkw/djangocms/rnd/wsgi.py
ServerName rndbkw.tk
WSGIDaemonProcess blog python-path=/home/rndbkw/projects/djangocms:/home/rndbkw/projects/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup blog
WSGIScriptAlias / /home/rndbkw/projects/djangocms/rnd/wsgi.py
但我无法回复http://rndbkw.tk/blog
答案 0 :(得分:2)
您的配置存在以下问题:
ServerName rndbkw.tk
WSGIDaemonProcess rnd python-path=/home/rndbkw/djangocms:/home/rndbkw/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup rnd
WSGIScriptAlias / /home/rndbkw/djangocms/rnd/wsgi.py
ServerName rndbkw.tk
WSGIDaemonProcess blog python-path=/home/rndbkw/projects/djangocms:/home/rndbkw/projects/virtualenv2.7/lib/python2.7/site-packages/
WSGIProcessGroup blog
WSGIScriptAlias / /home/rndbkw/projects/djangocms/rnd/wsgi.py
改为使用:
ServerName rndbkw.tk
WSGIDaemonProcess blog python-home=/home/rndbkw/projects/virtualenv2.7 python-path=/home/rndbkw/projects/djangocms
WSGIScriptAlias /blog /home/rndbkw/projects/djangocms/rnd/wsgi.py process-group=blog application-group=%{GLOBAL}
WSGIDaemonProcess rnd python-home=/home/rndbkw/virtualenv2.7 python-path=/home/rndbkw/djangocms
WSGIScriptAlias / /home/rndbkw/djangocms/rnd/wsgi.py process-group=rnd application-group=%{GLOBAL}
所做的更改是:
/blog
的子网址处挂载博客。WSGIScriptAlias
之前移动/blog
/
以使其优先,否则/
将永远匹配,任何事情都无法通过博客网站。python-home
WSGIDaemonProcess
指令指定虚拟环境的位置,而不是使用site-packages
添加python-path
。process-group
选项WSGIScriptAlias
来指示要使用的守护程序进程组。这使它更精确。您对WSGIProcessGroup
的使用不会起到Location
或Directory
范围限定的作用,因此最后两个WSGIProcessGroup
指令中的任何一个都会覆盖第一个application-group
设置为%{GLOBAL}
以强制使用每个守护程序进程的主解释器上下文。这解决了Python的某些第三方扩展模块的问题,这些模块在子解释器上下文中不起作用。 答案 1 :(得分:1)
配置中的最后一行需要
WSGIScriptAlias /blog /home/rndbkw/projects/djangocms/rnd/wsgi.py