我们有一个由Apache (Mod)提供的Django应用程序,它具有这样的配置:
<VirtualHost vhost:80>
# ...
WSGIScriptAlias / /path/to/wsgi.py
</VirtualHost>我们希望将单个应用程序服务到两个虚拟主机中:vhost:80和vhost:443 .客户端迁移所需的时间,最后只需将其保存在https虚拟主机上。是否有可能将指令WSGIScriptAlias / /path/to/wsgi.py复制到第二个虚拟主机(vhost:443)中,或者我们是否会遇到使用相同DB运行同一应用程序两倍的问题?
发布于 2017-06-13 01:10:11
首先,您希望确保您使用的是mod_wsgi的守护进程模式,而不是嵌入式模式。无论哪种方式,如果正在使用多进程配置,则已经有多个应用程序实例访问相同的数据库。这通常不是一个问题。当为SSL添加虚拟主机时,问题是进程数量加倍。这就是守护进程模式出现的地方。典型的配置是:
<VirtualHost *:80>
ServerName sitename.example.com
# Define a daemon process group.
WSGIDaemonProcess sitename
# Specify WSGI application and delegate to daemon process group.
# As delegating here, don't need WSGIProcessGroup/WSGIApplicationGroup.
WSGIScriptAlias / /path/to/wsgi.py process-group=sitename application-group=%{GLOBAL}
# ... access control directives
</VirtualHost>
<VirtualHost *:443>
ServerName sitename.example.com
# ... SSL options
# Specify WSGI application and delegate to daemon process group.
# As delegating here, don't need WSGIProcessGroup/WSGIApplicationGroup.
#
# Note that we did not define a daemon process group in this virtual
# host. Instead we rely on fact that can reach across and use daemon
# process group defined in virtual host for port 80. This is possible
# as value of ServerName is the same.
WSGIScriptAlias / /path/to/wsgi.py process-group=sitename application-group=%{GLOBAL}
# ... access control directives
</VirtualHost>如果需要调整容量和性能,则将process=nnn和threads=nnn选项添加到WSGIDaemonProcess中。还要确保修改您可能希望在守护进程组上设置的超时选项。
https://stackoverflow.com/questions/44500199
复制相似问题