我可以用一个Django安装托管多个网站吗
我有自己的VPS服务器,系统是Centos,并且装了cPanel和WHM。
现在我正在用Django和它自带的服务器搭建一个网站。等网站做好后,我会转到用WSGI和Apache来运行。
我想知道:
- 我能否用同一个Django安装来托管多个网站?
- 我用pip安装的一些应用,比如SOUTH、SENTRY、CMS、Celery等等,我还需要重新安装它们吗?
- 这会不会影响到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