在工作时服务器上环境的搭建,做个笔记记录。用到的东西主要有:django,nginx,supervisor,Gunicorn,virtualenv,mysql。
安装就略过了,每一个的文档上有介绍。virtualenv有一个virtualenvwrapper方便操作。
先安装virtualenv,然后在python虚拟环境里边安装django,gunicorn等相关库。
supervisor用来守护django网站启动的进程,默认配置文件添加/etc/supervisor/conf.d/name.conf
[program:code]
command=/home/sys/.virtualenvs/%(program_name)s/bin/gunicorn %(program_name)s.wsgi:application -c /home/www/%(program_name)s/%(program_name)s/gunicorn.conf.py
user=hg
directory=/home/www/%(program_name)s
autostart=true
autorestart=true
redirect_stderr=True
gunicorn.conf.py就是启动django的一些参数,制定监听的端口bind = "127.0.0.1:9006"。然后在nginx配置文件里边,进行转发。
server {
listen 80;
set $name "code";
server_name code.xx.com;
root /home/www/${name}/root;
access_log /var/log/nginx/${name}.access.log;
location ~ (\.hg|\.orig|\.bak) {
deny all;
}
location /static/ {
expires max;
access_log off;
alias /home/www/${name}/static/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:9006;
}
}
supervisor的一些命令:
修改配置文件以后要使用supervisorctl update命令,否则不会更新。刚开始的时候,捣鼓了好长时间 才知道要这样搞0 0.
supervisorctl start all启动所有进程,
supervisorctl start code 单独启动code进程。
使用supervisorctl可以进入管理程序。
Read more...