使用uwsgi和nginx代理django项目

1.介绍

引用uWSGI的配置与发布
在这里插入图片描述

2.安装、配置和启动

2.1 安装uwsgi

2.1.1 使用apt-get方式安装

apt-get install uwsgi
这种方式是将uwsgi安装到系统中,对于python2适用,但对于python3的环境,容易出现使用uwsgi启动了django项目后,网页访问不了的情况,此时需要使用python的pip3安装工具安装uwsgi。

2.1.2 使用pip方式安装

例:pip3 install uwsgi
遇到的坑:
1.显示gcc有报错信息,解决方法如下:
su root
rm /usr/bin/gcc
apt-get install gcc-4.7
ln -s /usr/bin/gcc-4.7 /usr/bin/gcc

安装完成后检查是否安装成功:
uwsgi --version # 输出uwsgi版本号的话说明安装成功
uwsgi --python-version # 检查uwsgi python版本

2.2 配置uwsgi.ini

uwsgi支持ini、xml等多种文件格式配置方式,本文主要讲解ini格式文件配置方式。
在django工程的根目录下(与manage.py文件同一个路径下)创建uwsgi.ini配置文件,并添加如下配置信息:
[uwsgi]
;当uwsgi直接作为web服务器时,使用http协议,端口号设定该服务是监听服务器上哪个端口的请求
;http=:8000
;当使用nginx代理服务器上的请求时,使用socket协议来使uwsgi监听nginx代理发送来的请求,端口号应该同nginx配置信息中保持一致
socket=:8000
;django项目根目录,绝对路径
chdir=/mnt/disk/usr1/watt/server
;django项目中wsgi.py(wsgi接口模块文件)位置,此处配置的是相对于根目录的相对路径
wsgi-file=server/wsgi.py
;作用如上
module = server.wsgi
;指明python解释器第一层路径
;home=/usr/bin/python3
;作用如上
;virtualenv=/root/anaconda3/envs/watt/bin/python3.7
;配置启动的进程数,指明通过uwsgi启动多少个进程
processes=8
;配置每个进程的线程数
threads=4
;配置启动管理主进程
master=True

buffer-size=30000
maxrequests=5000
;在退出uwsgi环境后,清空环境变量
vacuum=true
;配置日志保存路径
daemonize=uwsgi.log
;配置存放主进程的进程号文件
pidfile=uwsgi.pid
py-autoreload = 1
;http-timeout=3600
;harakiri=3600
;static-safe=/mnt/disk/usr1/watt/server/static
;配置静态文件目录
;static-map=/static=/mnt/disk/usr1/watt/server/static

2.3 启动uwsgi

进入到uwsgi.ini文件目录,执行启动命令:
uwsgi --ini uwsgi.ini # 不加–ini也可以
遇到的坑:
1.显示libpcre.so.1找不到,解决方法:
https://blog.csdn.net/weixin_33127753/article/details/91958254
2.显示启动成功,但是访问页面没有内容,查看uwsgi.log显示如下报错信息:
no python application found. …
解决方法:确认wsgi.py文件所在的目录是一个python的package,也就是说该目录下要存在__init__.py文件。如果还是不行,原因是因为uwsgi所在的Python版本跟django所在Python版本不一致。使用uwsgi --python -version查看uwsgi所安装在的python版本是否跟django项目所在的python版本一致。
如果不一致,检查pip3指令是否对应于django 所在python,如果不是请先删除使用pip3安装的uwsgi:
pip3 uninstall uwsgi
然后使用pip安装(保证pip对应于django所在的python):pip install uwsgi
安装完成后再次启动,问题解决。

显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功。
通过 ps -ef|grep uwsgi 查看确认是否uwsgi启动

2.4 停止运行uwsgi

通过包含主进程pid的文件停止uwsgi,指令:
uwsgi --stop uwsgi.pid

2.5 重启uwsgi

uwsgi --reload uwsgi.pid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值