django+nginx+uwsgi的生产环境部署(Ubuntu16.04)
Posted 瘦头陀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django+nginx+uwsgi的生产环境部署(Ubuntu16.04)相关的知识,希望对你有一定的参考价值。
一,准备工作:
代码一定要能本地跑起来!
各种基础包的安装略默认已经安装python3,nginx,uwsgi等基础依赖,注意版本问题。
本地setting.py文件修改如下(改为生产模式,把debug关闭,添加host和静态文件地址):
项目目录内随便什么地方新建一个uwsgi.ini配置文件:
# dongpouu_uwsgi.ini file [uwsgi] # Django-related settings socket = :8000 #真实服务的端口 # Django项目根目录 (绝对路径) chdir = /home/dongpouu # wsgi.py文件在项目中的位置 module = dongpouu.wsgi # process-related settings # master master = true # 运行的进程数 processes = 1 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = true
然后打一个zip包,通过ftp上传到服务器,注意上传路径要与uwsgi.ini内的地址一致:
然后在项目根目录,运行一条命令来收集静态文件(因为在生产模式下,django不会再自动管理静态路径。后面会通过配置交给nginx来管理):
python3 manager.py collectstatic
配置nginx。在/etc/nginx/目录下,找到nginx.conf文件,用vim打开它,然后在http{ }内部加入下面内容。这不是唯一的配置方式,其他的也试过很多坑,最终这一种成功!、
server { #这里是nginx用到的端口,注意不要与django的搞混了,所有配置里边只有这个端口是与其他地方不一样的!!! listen 80; server_name dongpouu.com; charset UTF-8; #这块存让日志文件 access_log /var/log/nginx/dongpouu_access.log; error_log /var/log/nginx/dongpouu_error.log; location /static/ { autoindex on; alias /home/dongpouu/static/; #这里按照自己的实际情况来,包括下面的 } location /media/ { autoindex on; alias /home/dongpouu/media/;#这里按照自己的实际情况来,包括下面的
}
client_max_body_size 75M;
location / {
include uwsgi_params; #同uwsgi内容
uwsgi_pass 127.0.0.1:8000; #链接超时时间
uwsgi_read_timeout 30; }
}
最后三条命令,部署生效(失败的自己排查肯定是配置问题):
killall -9 uwsgi # 杀死正在运行的uwsgi服务
uwsgi --ini dongpouu_uwsgi.ini # 注意要cd到该文件对应目录下,这条命令成功代表django项目顺利跑起来了!
service nginx reload # 重新加载nginx
最后访问www.dongpouu.com(你自己的网址,或者直接访问服务器的公网IP)看效果。
以上是关于django+nginx+uwsgi的生产环境部署(Ubuntu16.04)的主要内容,如果未能解决你的问题,请参考以下文章
Django + Uwsgi + Nginx 实现生产环境部署
Django + Uwsgi + Nginx 的生产环境部署
Django + Uwsgi + Nginx 的生产环境部署
Django + Uwsgi + Nginx 的生产环境部署