运行多个Django虚拟主机时,WSGIApplicationGroup的哪个值?

Thebjorn

我在mod_wsgi下的同一Apache实例上运行多个Django站点。当前,我的apache.conf文件包含以下指令(未WSGIApplicationGroup指定):

WSGIDaemonProcess mysite   \
    display-name=mysite    \
    threads=50             \
    maximum-requests=10000 \
    umask=0002             \
    home=/srv/www/mysite   \
    python-path=/srv/www:/srv/src:/srv/venv/prod/lib/python2.7/site-packages \
    python-eggs=/srv/.python-eggs

WSGIProcessGroup mysite
WSGIScriptAlias / /srv/www/mysite/wsgi.py

touch /srv/www/mysite/wsgi.py每当我需要重新加载网站,它会导致所有的客户明显冻结。

阅读https://groups.google.com/forum/#!topic/modwsgi/QJkt5UWYpss后,听起来可以通过在WSGIScriptAlias指令中指定进程/应用程序组来摆脱“重新加载暂停”

WSGIDaemonProcess mysite   \
    display-name=mysite    \
    threads=50             \
    maximum-requests=10000 \
    umask=0002             \
    home=/srv/www/mysite   \
    python-path=/srv/www:/srv/src:/srv/venv/prod/lib/python2.7/site-packages \
    python-eggs=/srv/.python-eggs

WSGIScriptAlias / /srv/www/mysite/wsgi.py    \
    process-group=mysite                     \
    application-group=mysite

IIUC,我需要同时提供process-group=application-group=进行预加载。

到目前为止application-group=%{GLOBAL}我发现的所有文档都使用,但是对于我的用例来说,这似乎是错误的,因为每个虚拟主机都应基于单个站点的settings.py文件运行代码(对吗?)。

我应该使用预定义%{RESOURCE}变量而不是mysite

我可以在同一站点的http和https版本之间共享同一应用程序组吗?(我知道我无法通过流程组来做到这一点)。

格雷厄姆·邓普顿

每个虚拟主机Django站点应使用一个单独的守护进程组,因此%{GLOBAL}的应用程序组很好,因为它在各个进程组中强制使用主解释器上下文。它不会在过程组之间共享。

请注意,如果在站点负载沉重的情况下进行重新启动,则预加载并不一定会带来太大帮助,因为事情仍然需要等待进程启动并加载应用程序。

线程数= 50似乎太过分了。您得到什么,您的平均响应时间是多少。通过每个进程使用3-5个线程并使用多个进程来获得最佳性能。使用多个进程显然意味着要使用更多的内存,因为应用程序将有多个副本。

最后,是的,除非您有充分的理由,否则建议您将HTTP和HTTPS版本的网站都委派给同一守护进程组。在第一个VirtualHost中指定WSGIDaemonProcess,如Apache为该ServerName所见。在80/443对中的第二对中,没有WSGIDaemonProcess,而是在另一个VirtualHost上下文中引用命名的进程组。如果ServerName相同,则允许跨范围访问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Apache设置为使用虚拟主机在同一域上运行多个django应用

来自分类Dev

设置虚拟主机时,localhost / phpmyadmin无法访问

来自分类Dev

设置虚拟主机时,Mac OS X Mavericks问题

来自分类Dev

使用虚拟主机时“无法访问此站点”

来自分类Dev

启用虚拟主机时,Apache返回403

来自分类Dev

虚拟主机无法在MAMP上运行

来自分类Dev

将两个或多个虚拟主机绑定到一个IP时,ip addres指向哪个虚拟主机?

来自分类Dev

Express提供多个证书/虚拟主机

来自分类Dev

使用多个虚拟主机配置Postfix

来自分类Dev

Apache上的多个SSL虚拟主机

来自分类Dev

多个Tomcat 8安装或虚拟主机

来自分类Dev

使用多个虚拟主机配置Postfix

来自分类Dev

在多个虚拟主机之间共享配置

来自分类Dev

单个域上的多个虚拟主机

来自分类Dev

Django兼容的虚拟主机服务

来自分类Dev

在Wamp服务器中设置虚拟主机以运行多个网站

来自分类Dev

仅当服务器名称用作主机时,才应用虚拟主机

来自分类Dev

虚拟主机安全

来自分类Dev

设置虚拟主机

来自分类Dev

设置虚拟主机

来自分类Dev

.htaccess与虚拟主机

来自分类Dev

虚拟主机问题

来自分类Dev

虚拟主机的 Crontab

来自分类Dev

使CakePHP在虚拟主机中的MAMP上运行的问题

来自分类Dev

Apache虚拟主机无法在Ubuntu 14.04 LTS上运行

来自分类Dev

Apache虚拟主机无法在Ubuntu 14.04 LTS上运行

来自分类Dev

Nginx放弃与多个虚拟主机的SSL握手

来自分类Dev

在Apache2中设置多个虚拟主机

来自分类Dev

与多个虚拟主机共享一个外部IP