apache和mod_wsgi的多个django网站

apache和mod_wsgi的多个django网站,第1张

apache和mod_wsgi的多个django网站

您的ServerName / ServerAlias指令错误。ServerName应该是主机名。您可能应该只删除ServerAlias。

然后只需执行明显且重复的VirtualHost / Listen指令,只需更改文件系统中脚本的端口号和位置即可。

最后,不要将documentRoot设置为您的Django代码所在的位置,因为如果您填充Apache配置,它很容易意外地暴露您的源代码以供下载。因此,只需从VirtualHost
for Django网站删除documentRoot指令。

Listen 80<VirtualHost *:80>ServerName www.example.comWSGIscriptAlias / /opt/django/site1/apache/django.wsgiAlias /media /opt/django/site1/media/staticsAlias /admin_media  /home/myuser/Django-1.1/django/contrib/admin/media<Directory opt/django/site1/apache>Order allow,denyAllow from all</Directory><Directory /home/myuser/Django-1.1/django/contrib/admin/media>Order allow,denyAllow from all</Directory></VirtualHost>Listen 8080<VirtualHost *:8080>ServerName www.example.comWSGIscriptAlias / /opt/django/site2/apache/django.wsgiAlias /media /opt/django/site2/media/staticsAlias /admin_media  /home/myuser/Django-1.1/django/contrib/admin/media<Directory opt/django/site2/apache>Order allow,denyAllow from all</Directory><Directory /home/myuser/Django-1.1/django/contrib/admin/media>Order allow,denyAllow from all</Directory></VirtualHost>Listen 8090<VirtualHost *:8090>ServerName www.example.comWSGIscriptAlias / /opt/django/site3/apache/django.wsgiAlias /media /opt/django/site3/media/staticsAlias /admin_media  /home/myuser/Django-1.1/django/contrib/admin/media<Directory opt/django/site3/apache>Order allow,denyAllow from all</Directory><Directory /home/myuser/Django-1.1/django/contrib/admin/media>Order allow,denyAllow from all</Directory></VirtualHost>

我还添加了缺少的Directory指令,以允许访问静态文件。但是,您应该查看路径。

确保您阅读:

http://pre.google.com/p/modwsgi/wiki/IntegrationWithDjango


http://pre.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files

了解更多信息。


更新1

顺便说一句,由于您在同一Apache中使用PHP,因此最好使用mod_wsgi守护程序模式并将每个Django实例推入其自己的单独进程中。即使由于PHP而将主要的Apache进程强制为单线程,也可以使这些进程成为多线程。与使用prefork
MPM在嵌入式模式下在每个进程中运行多个Django实例相比,最终结果将使用更少的内存。您的Django代码只需要是线程安全的即可。除上述配置外,还需要向每个Django
VirtualHost添加WSGIDaemonProcess /
WSGIProcessGroup,其中,每个VirtualHost的守护进程组的名称均不同。

<VirtualHost *:80>WSGIDaemonProcess site1 display-name=%{GROUP}WSGIProcessGroup site1... existing stuff</VirtualHost><VirtualHost *:8080>WSGIDaemonProcess site2 display-name=%{GROUP}WSGIProcessGroup site2... existing stuff</VirtualHost><VirtualHost *:8090>WSGIDaemonProcess site3 display-name=%{GROUP}WSGIProcessGroup site3... existing stuff</VirtualHost>

这也使您可以更轻松地重新启动每个Django实例,而无需重新启动整个Apache。读:

http://pre.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Delegation_To_Daemon_Processhttp://pre.google.com/p/modwsgi/wiki/ReloadingSourceCode



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5663476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存