在vps上已经安装了LNMP,运行几个PHP的小站点,现在需要部署一个Django的网站,求帮助

2012-07-17 23:30:35 +08:00
 wening
因为第一次部署Python + Django 的应用,所以希望大家可以帮小弟点忙
不知道有没有好的教程、部署实践
5175 次点击
所在节点    Python
7 条回复
evlos
2012-07-17 23:41:20 +08:00
upstream frontends {
server 127.0.0.1:8888;
}
server {
listen 80;
location / {
proxy_read_timeout 1800;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://frontends;
}
}

Nginx 的配置文件中添加如上代码,8888 为 Django 端口
wening
2012-07-17 23:46:12 +08:00
@evlos 感谢亲
不过,我不明白,不需要先安装pyhton版本和Django的框架么
ipconfiger
2012-07-17 23:52:41 +08:00
http://www.cnblogs.com/Alexander-Lee/archive/2011/05/02/tornado_host_django.html
根据鄙文应该可以搞定,写得很详细了,python应该是linux系统装好就有的,centos5.6默认是2.4,centos6.2默认2.6,如果版本不够新需要自己安装如果装这个太详细了,由于不知道你的系统是啥,所以无法跟你说,话说问问题要说清楚,特别是这里回答个问题也要有开销的
wening
2012-07-18 00:00:15 +08:00
@ipconfiger 忘了说了,我的生产环境是ubuntu 12.04
wening
2012-07-18 00:00:54 +08:00
@ipconfiger 刚才忘了,感谢亲了,感谢啊
ipconfiger
2012-07-18 09:54:58 +08:00
ubuntu12.04的python是2.7就不用另外安装了
1. 安装mysql的python库
$sudo apt-get install python-mysqldb

2. 安装setup tools
$sudo apt-get install python-setuptools

3. 安装PIP
$sudo easy_install pip

4. 安装django等一系列python库
$sudo pip install django
$sudo pip install gunicon
...由于不知道你的django应用用到了那些库,剩下的自己依葫芦画瓢

5. 安装supervisor用来管理python的进程
$sudo pip install supervisor

6. 生成supervisor的配置
$sudo echo_supervisord_conf > /etc/supervisord.conf

7. 修改/etc/supervisord.conf 增加web应用的配置
$sudo vim /etc/supervisord.conf

在最末尾增加如下配置
[program:web]
command=/usr/local/bin/gunicorn_django --workers 4 --name your_app_name
user=www
directory=/你的django站点目录的地址
umask=022
startsecs=0
stopwaitsecs=0
redirect_stderr=true
stdout_logfile=/tmp/web.log

然后启动supervisor
$sudo supervisord

这个时候站点服务已经启动起来了

8. 修改nginx配置,配置虚拟站点,通过upstream反向代理到站点服务上

$sudo vim /etc/nginx/conf.d/web.conf

把下面内容直接贴入,修改一下域名等内容,保存
upstream frontends {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name 站点域名写这里;
location / {
proxy_read_timeout 1800;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://frontends;
}
}

最后重启一下nginx $sudo /etc/init.d/nginx reload

以后如果修改了站点的代码,重启服务是通过

$sudo supervisorctl restart web

停止站点是
$sudo supervisorctl stop web
wening
2012-07-18 11:29:13 +08:00
@ipconfiger 恩人啦,感谢大哥了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/42662

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX