在这里配个图让我们更好理解uwsgi;
1.环境
Centos7
nginx/1.16.0
Python 3.6.6
uwsgi:2.0.18
Django==2.1.7
2.下载
1️⃣下载python
具体步骤参考之前博客 如何下载python
主要是要用pip3(相当于yum)
2️⃣下载nginx
网站具体步骤看图就可以,在这里强调下,编辑配置文件时只写入红框里的内容即可,记得把gpgcheck=0;
3️⃣下载Django
pip3 install Django==2.1.7
这里报错了,提示升级pip,按照它提示的去执行
pip3 install --upgrade pip
4️⃣下载uwsgi
pip3 install uwsgi
这样就可以了,我们一起来检查下我们下载的吧。
3.启动uwsgi
1️⃣首先看下树状图
2️⃣在/opt目录下创建文件夹
cd /opt
mkdir -pv app/code
mkdir -pv app/conf
cd code
/usr/local/python3/bin/django-admin startproject demo
#用django-admin.py创建一个demo项目
4️⃣测试Django
cd demo
python3 manage.py runserver 0.0.0.0:8000
我们试下在自己的浏览器输入centos的 ip:8000;会发现django报了一个错误,需要将我们的ip添加进白名单,先退出Contorl+c
vim /opt/app/code/demo/demo/settings.py找到这个正常情况是[’*’];就可以了但是为了方便之后操作,我们直接把自己的ip填进去。保存退出
再执行命令python3 manage.py runserver 0.0.0.0:8000
看到此页面就可以了
4️⃣由于启动uwsgi需要普通用户启动
创建用户uwsgi
useradd uwsgi
passwd uwsgi5️⃣创建配置文件uwsgi.ini
切换到conf目录下
vim uwsgi.ini
[uwsgi]
socket = 127.0.0.1:9090
master = true //主进程
workers = 2 //子进程数
reload-mercy = 10
vacuum = true //退出、重启时清理文件
max-requests = 1000
limit-as = 512
buffer-size = 30000
pidfile = /var/run/uwsgi/uwsgi.pid
daemonize = /var/log/uwsgi.log
保存并退出;
6️⃣创建uwsgi配置文件里的uwsgi.pid和uwsgi.log并添加属主用户uwsgi
切换到/var/run
mkdir uwsgi
cd uwsgi
touch uwsgi.pid
chown -R uwsgi /var/run/uwsgi
再切换到/var/log
touch uwsgi.log
chown uwsgi /var/log/uwsgi.log
7️⃣为了使用uwsgi命令方便 我们可以创建软连接
ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi
切换用户
su uwsgi
cd /opt/app/conf
首先检查是否uwsgi启动
ps -ef | grep uwsgi
如果有启动的,则执行kill -9 '进程号'
启动uwsgi
uwsgi --ini /opt/app/conf/uwsgi.ini
表示成功了
表示9090端口已被监听;
4.配置Nginx
切换到root用户
cd /etc/nginx/conf.d/
vim uwsgi.conf
server {
listen 81;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/host.access.log main;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
uwsgi_param UWSGI_SCRIPT demo.wsgi;
uwsgi_param UWSGI_CHDIR /opt/app/code/demo; #Django的项目目录
index index.html index.htm;
client_max_body_size 35m;
}
}
测试语法是否正确
nginx -tc /etc/nginx/nginx.conf
可以的,然后重新加载nginx
systemctl reload nginx
最后在浏览器测试下吧:
成功的。