首页 > 编程 > Python > 正文

Django uwsgi Nginx 的生产环境部署详解

2020-02-16 01:03:36
字体:
来源:转载
供稿:网友

配置生产环境

#setting.py 文件中DEBUG = False  # 生产环境# 允许访问的域名,域名前加一个点表示允许访问该域名下的子域名,比如 www.zmrenwu.com、# test.zmrenwu.com 等二级域名同样允许访问。如果不加前面的点则只允许访问 zmrenwu.comALLOWED_HOSTS = ["127.0.0.1",".blogzjl.site"]

创建Python虚拟环境

安装 virtualenv

sudo pip3 install virtualenv

克隆Python的环境

#先到指定目录下运行, 我的虚拟环境是在 blogzjl.site 目录下#指定--python=python3 克隆Python3的环境virtualenv --python=python3 env#进入虚拟环境source /home/zjl/sites/blogzjl.site/env/bin/activate#用户名前,会出现 (env) zjl@ ,表示进入#后面基本上都是在虚拟环境中完成的

收集静态文件

先在settings中配置 STATIC_ROOT = os.path.join(BASE_DIR, 'static')

同时在mysite_nginx.conf 中将静态文件的路径改为 static 的绝对路径

#在settings中配置# STATIC_ROOT 指明了静态文件的收集目录,即项目根目录(BASE_DIR)下的 static 文件夹STATIC_ROOT = os.path.join(BASE_DIR, 'static')#在命令行输入python3 manage.py collectstatic #将静态文件copy到统一的目录static下

uwsgi配置

安装 uwsgi

pip3 install uwsgi#可能需要更新pip才能安装,根据提示输入命令更新pip install --upgrade pip

测试 uwsgi

在项目目录下执行

uwsgi --http 127.0.0.1:8080 --file BlogProject/wsgi.py --static-map=/static=static#--http 这个就和runserver一样指定IP 端口#--file Django 项目中wsgi.py文件的路径,和setting.py在同一个目录下#-- static 做一个映射,指定静态文件#可能会启动/访问失败,请检查端口是否占用,file 或 static 路径是否正确#使用命令 netstat -nultp 查看端口使用情况#关掉相关经常 killall -9 uwsgi 或 kill -9 进程号

执行Linux命令 curl http://127.0.0.1:8080 访问,查看是否是访问成功后的页面(可以启动DEBUG 对错误页面的相关调试)

配置文件

相当于将 uwsgi --http 127.0.0.1:8080 --file BlogProject/wsgi.py --static-map=/static=static 这一长串命令配置到文件里,简化以后的启动命令

在自定义目录或项目主目录下创建uwsgi配置文件:blogzjl_uwsgi.ini(自定义命名,以 .ini 结束),我这里是在/home/zjl/sites/blogzjl.site/blogzjl/

路径下自定义的一个目录 script 存放所有配置(包括nginx)相关的文件

[uwsgi]#the local unix socket file than commnuincate to Nginxsocket = /home/zjl/sites/blogzjl.site/blogzjl/script/uwsgi.sock# 项目路径chdir = /home/zjl/sites/blogzjl.site/blogzjl/BlogProject/# Django's wsgi file 项目中wsgi的位置wsgi-file = BlogProject/wsgi.py#进程相关设置# 进程数 同 processesworker = 5#processes = 4#线程数#threads = 2#指定静态文件static-map = /static=/home/zjl/sites/blogzjl.site/blogzjl/BlogProject/static#主进程启动master = truepidfile = /home/zjl/sites/blogzjl.site/blogzjl/script/uwsgi.pid#static-map = /static = /home/zjl/sites/blogzjl.site/blogzjl/BlogProject/static#启动uwsgi的用户名和用户组uid = zjlgid = zjl#启用线程enable-threads = True#设置自中断时间harakir = 30#设置缓冲post-buffering = 4096#设置后台运行daemonize = /home/zjl/sites/blogzjl.site/blogzjl/script/uwsgi.log#monitor uwsgi status#stats = 127.0.0.1:9191# clear environment on exit 退出时清除环境vacuum     = true            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表