Nginx uwsgi的反向代理模式

在这里插入图片描述在这里配个图让我们更好理解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 uwsgi在这里插入图片描述5️⃣创建配置文件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
最后在浏览器测试下吧:
在这里插入图片描述成功的。

注意:我之前在浏览器测试时就一直报错502 BAD GETWAY错误,所以建议先添加settings.py的白名单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_Bigboy_sz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值