作者: 林翔宇
本文是去年做掌上南邮第一版服务器程序的时候写的部署笔记,原来放在简书上,时隔一年后,还收到一两个喜欢,看来还有那么一点点价值,于是就搬过来好了。
初始化服务器环境
yum -y install vim git screen python-pip
curl -L https://github.com/robbyrussell/oh-my- zsh/raw/master/tools/install.sh | sh
pip install virtualenvwrapper gunicorn django
mkdir /usr/local/virtualenv
mkvirtualenv python
配置gunicorn服务器
Gunicorn(gunicorn.org)是一个Python WSGI UNIX的HTTP服务器。,从Ruby的独角兽(Unicorn)项目移植。
在Django项目下建立shell脚本
#!/bin/bash
set -e
LOGFILE=guni.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3 # cpu core nums * 2 + 1
USER=nobody
GROUP=nogroup
# WORKER=gevent # install python gevent
ADDRESS=127.0.0.1:8000
test -d $LOGDIR || mkdir -p $LOGDIR
exec gunicorn_django -w $NUM_WORKERS --bind=$ADDRESS \
# -k $WORKER
--daemon \
--user=$USER --group=$GROUP --log-level=error \
--log-file=$LOGFILE 2>>$LOGFILE
安装Nginx用作反向代理与静态服务器
- 使用http://lnmp.org/ 安装Nginx
- 用Lnmp一键安装包带的脚本新建一个虚拟主机
更改主机的Nginx配置文件
server { listen 80; server_name nuptapi.nupter.org; access_log /home/wwwlogs/nuptapi.nupter.org.log; error_log /home/wwwlogs/nuptapi.nupter.org.error.log; root /home/wwwroot/nuptapi.nupter.org; location /static/ { alias /home/wwwroot/nuptapi.nupter.org/static/; } location / { proxy_pass http://127.0.0.1:8000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; } }
用Supervisord守护进程
- echo_supervisord_conf > /etc/supervisord.conf
- vim /etc/supervisord.conf
更改配置文件以下的内容
- chown=lxy:lxy ; socket file uid:gid owner
[program:nuptapi] command=/home/wwwroot/django_helloworld/gunicorn_start.sh
Shell运行supervisord
- 同时supervisord 默认会在9001端口打开一个HTTP服务器,可以在Nginx再配置一个反向代理来远程登陆
其它
- 配置DNS服务器,解析域名A记录到服务器IP
- 重启Nginx