我可以用一个Django安装托管多个网站吗

0 投票
2 回答
521 浏览
提问于 2025-04-16 21:09

我有自己的VPS服务器,系统是Centos,并且装了cPanel和WHM。

现在我正在用Django和它自带的服务器搭建一个网站。等网站做好后,我会转到用WSGI和Apache来运行。

我想知道:

  1. 我能否用同一个Django安装来托管多个网站?
  2. 我用pip安装的一些应用,比如SOUTH、SENTRY、CMS、Celery等等,我还需要重新安装它们吗?
  3. 这会不会影响到cPanel和WHM的使用?

2 个回答

0

是的,这在Django中是可以实现的。这样的设置还可以让应用支持多租户,也就是说可以为不同的用户或客户提供独立的服务。这个配置可以通过apache的配置文件来完成。

我记得有一个表叫django_site,你可以去看看怎么使用它。

举个例子,如果你的域名是aaa.com,就用不同的aaa.py文件和数据库aaa;如果域名是bbb.com,就用另一个python文件bbb.py和数据库bbb。

https://docs.djangoproject.com/en/dev/ref/contrib/sites/

http://thingsilearned.com/2009/01/05/using-subdomains-in-django/

2

没错。

在Apache这边,你需要了解一下虚拟主机的概念。简单来说,就是你可以为每个网站提供不同的配置,具体是根据网站的名字来区分的。Apache会根据这些配置来处理进入的请求。你可以查看这个链接了解更多信息:http://httpd.apache.org/docs/2.2/vhosts/

至于Python的包,比如South、Celery,还有Django本身,你当然可以在所有网站之间共享它们。这是默认的做法。不过,正确的做法是为每个网站使用不同的虚拟环境(virtualenv)。这样的话,你就可以单独升级某个网站使用的Django版本,而不影响其他网站。想了解更多,可以看看这个链接:http://pypi.python.org/pypi/virtualenv

撰写回答