我在一台设有十几个虚拟主机的服务器上运行Django。我放在一起的第一个Django网站效果很好,但我准备建立第二个网站。我需要运行第二个fastcgi进程吗?
对于第一个网站,我用这种方式运行fcgi:
/home/django/app1/manage.py runfcgi protocol=fcgi host=127.0.0.1 port=8081
域的nginx配置指向该fcgi进程(fastcgi_pass 127.0.0.1:8081)。
对于第二个站点,我是否需要运行另一个fcgi副本,如每个站点一个fcgi?:
/home/django/app2/manage/py runfcgi protocol=fcgi host=127.0.0.1 port=8082
然后将nginx配置指向该进程(fastcgi_pass 127.0.0.1:8082)?
或者有没有办法用一个fastcgi来处理多个Django站点?是否有设置多Django服务器的最佳实践?
答案 0 :(得分:2)
这取决于您对网站的意思,以及您的Django配置的外观。
每个Django settings.py定义一个且只有一个数据库,一个且只有一个urls.py树。
每个Django都有一个settings.py - 一个数据库 - 一个urls.py树。
如果每个站点都有不同的数据库,则需要使用不同的settings.py,并且您需要一个独特的fastcgi实例。
如果所有站点都受单个数据库支持,只有一个settings.py,那么您可以将它们全部挤出一个fastcgi实例。
请注意,Django的urls.py处理程序主要忽略请求中url解析中的主机名和端口号。但是,如果包含“站点”模型,则可以将虚拟主机名称作为请求处理的一部分。
答案 1 :(得分:0)
对于它的价值,您可以取消tcp开销并改为使用套接字:
/home/django/app1/manage.py runfcgi protocol = fcgi socket = / var / run / mysite.sock
套接字必须对于网络服务器用户是可读写的。