1

我在设置了十几个虚拟主机的服务器上运行 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 服务器的最佳实践?

4

2 回答 2

2

这取决于您所说的站点是什么意思,以及您的 Django 配置是什么样的。

每个 Django settings.py 定义了一个且唯一的数据库,一个且唯一的 urls.py 树。

每个 Django 都有一个 settings.py——一个数据库——一个 urls.py 树。

如果每个站点都有不同的数据库,则它们需要不同的 settings.py 并且您需要不同的 fastcgi 实例。

如果所有站点都由单个数据库支持,并且具有单个 settings.py,那么您可以将它们全部挤出单个 fastcgi 实例。

请注意,Django 的 urls.py 处理程序大多会忽略请求中 url 解析中的主机名和端口号。但是,如果您包含站点模型,您可以让虚拟主机名成为请求处理的一部分。

于 2009-04-23T00:38:33.267 回答
0

对于它的价值,您可以消除 tcp 开销并改用套接字:

/home/django/app1/manage.py runfcgi 协议=fcgi socket=/var/run/mysite.sock

套接字对于网络服务器用户必须是可读写的。

于 2009-04-25T17:13:08.340 回答