以下内容为原创,转载请注明出处!
先前一直用的apache部署django项目,查看链接地址:/article/22.html 。这次帮同事用nginx部署服务,特此记录下过程:
环境:CentOS Linux release 7.2.1511 (Core)
django2.1(项目名称box,项目地址: /opt/box/box)
Vue
python3.6
uwsgi配置,wsgi文件目录/opt/box/box/box/wsgi.py[uwsgi]
#项目目录
chdir=/opt/box/box/
#指定项目的application
module=box.wsgi:application
#指定sock的文件路径,为什么用sock不用下面http,是因为性能问题,二进制肯定比http协议快
socket=/opt/box/box/uwsgi.sock
#进程个数
workers=2
pidfile=/opt/box/box/uwsgi.pid
#指定IP端口,服务器内网IP
#http=172.16.0.3:9003
#指定静态文件
static-map=/static=/opt/box/box/static
#指定权限
chmod-socket=777
#启动uwsgi的用户名和用户组
uid=root
gid=root
#启用主进程
master=true
#自动移除unixSocket和pid文件当服务停止的时候
vacuum=true
#序列化接受的内容,如果可能的话
thunder-lock=true
#启用线程
enable-threads=true
#设置自中断时间
harakiri=30
#设置缓冲
post-buffering=4096
#设置日志目录
#daemonize=/opt/box/box/log/uwsgi.log
后台接口nginx配置,vim /etc/nginx/conf.d/box_api.confserver{
listen9003;
;
access_log/var/log/nginx/access.logmain;#Nginx日志配置
location/{
includeuwsgi_params;
uwsgi_connect_timeout30;
uwsgi_passunix:/opt/box/box/uwsgi.sock;#指定uwsgi的sock文件所有动态请求就会直接丢给他
}
#指定静态文件路径
location/static/{
alias/opt/box/box/static/;
indexindex.htmlindex.htm;
}
}
前端vue nginx配置,vim /etc/nginx/conf.d/box_vue.confserver{
listen80;
server_namexxxx.;
#指定vue编译后的dist文件地址
root/opt/box-vue/dist/;
indexindex.html;
location~*^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt){
root/opt/box-vue/dist/;
}
location/{
try_files$uri$uri/@router;
indexindex.html;
}
location@router{
rewrite^.*$/index.htmllast;
}
}
supervisor配置,vim /etc/supervisord.d/box_web.ini[program:box.web]
command=/opt/box/box_env/bin/uwsgi--ini/opt/box/box/uwsgi.ini
numprocs=1
directory=/opt/box/box
stdout_logfile=/opt/box/box/log/supervisord.log
stderr_logfile=/opt/box/box/log/supervisord.log
stopasgroup=true
killasgroup=true
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=120
priority=998
environment=PYTHONPATH='$PYTHONPATH:/opt/box/box'
启动supervisor:supervisord -c /etc/supervisord.conf
supervisorctl
start box.web
启动nginx:/bin/systemctl reload nginx.service
查看:后台api地址::9003
前端地址(项目网页入口):