8 nginx 代理python

 

使用diango框架

1.安装python3

[root@web02 ~]# yum install python3 -y 

2.安装django框架

[root@web02 ~]# pip3 install django==2.2.2

3.创建django项目

[root@web02 opt]# cd /opt/
[root@web02 opt]# django-admin startproject htt

4.在项目中创建应用

    [root@web02 opt]# cd htt/
[root@web02 htt]# pwd
/opt/htt
[root@web02 htt]# django-admin startapp application

5.修改配置文件

[root@web02 htt]# vim /opt/htt/htt/settings.py
ALLOWED_HOSTS = ['*']
DATABASES = {}

6.启动测试,浏览器访问

[root@web02 htt]# pwd
/opt/htt
[root@web02 htt]# python3 manage.py runserver 0.0.0.0:8000

 


 

 

 

image-20211027220532907

讲解Nginx代理Python项目

为什么要用uWsgi

因为nginx不支持wsgi协议,无法直接调用py开发的webApp。 在nginx+uWsgi+Django的框架里,nginx代理+webServer,uWsgi是wsgiServer,Django是webApp。 nginx接收用户请求,并判定哪些转发到uWsgi,uWsgi再去调用pyWebApp。

1.创建项目用户

[root@web02 htt]# groupadd django -g 888
[root@web02 htt]# useradd django -u 888 -g 888 -r -M -s /bin/sh

2.安装依赖包


[root@web02 ~]# yum install python3 libxml* python-devel gcc* pcre-devel openssl-devel python3- -y

3.安装uwsgi和diango

[root@web02 ~]#pip3 install uwsgi django
[root@web02 ~]#pip3 install django==2.2.2

4.创建项目

(cd /opt
django-admin startproject htt
cd htt
django-admin startapp application)参考上述使用diango框架

5、编辑项目启动配置文件


[root@web02 opt]#cd /opt/htt
[root@web02 htt]# vim
/opt/htt/my_uwsgi.ini

写入下面的内容


[root@web02 htt]# cat myuwsgi.ini
[uwsgi]
# 端口号
socket            = :8000
# 指定项目的目录
chdir           = /opt/htt
# wsgi文件路径
wsgi-file       = htt/wsgi.py
# 模块wsgi路径
module          = htt.wsgi
# 是否开启master进程
master          = true
# 工作进程的最大数目
processes       = 4
# 结束后是否清理文件
vacuum          = true

6.启动uwsgi

uwsgi 参数:

-d : 以守护进程方式运行 --ini : 指定配置文件的路径

[root@web02 htt]# cd  /opt/htt
[root@web02 htt]# uwsgi -d --ini my_uwsgi.ini
[uWSGI] getting INI configuration from myuwsgi.ini
#查看进程列表
[root@web02 htt]# ps -ef | grep uwsgi
root      26395      1  3 12:17 ?        00:00:00 uwsgi -d --ini myuwsgi.ini
root      26397  26395  0 12:17 ?        00:00:00 uwsgi -d --ini myuwsgi.ini
root      26398  26395  0 12:17 ?        00:00:00 uwsgi -d --ini myuwsgi.ini
root      26399  26395  0 12:17 ?        00:00:00 uwsgi -d --ini myuwsgi.ini
root      26400  26395  0 12:17 ?        00:00:00 uwsgi -d --ini myuwsgi.ini

image-20211027223548027

7.配置Nginx连接uwsgi

cd /etc/nginx/conf.d
vim python.conf

输入一下内容

# 配置一个网站
server {
   # 监听端口
  listen 80;
   # 域名
  server_name py.test.com;
   # 配置路径
  location / {
       # 加载nginx带来uwsgi的配置项
      include uwsgi_params;
       # 指定uwsgi的访问路径
      uwsgi_pass 127.0.0.1:8000;
       # 连接uwsgi的超时时间
      uwsgi_read_timeout 2;
       # 自定义uwsgi代理项目的路径及配置项
      uwsgi_param UWSGI_SCRIPT htt.wsgi;
       # 指定python项目的路径
      uwsgi_param UWSGI_CHDIR /opt/htt;
       # 索引文件
      index index.html index.htm;
       # 客户端上传文件的最大值
      client_max_body_size 35m;
  }
}

8、重启nginx

[root@web02 conf.d]# systemctl restart nginx

9.修改Windows的hosts文件C:\Windows\System32\drivers\etc

192.168.15.8 py.test.com

10.测试

 

 

 

image-20211027234903590

 

posted @ 2021-10-27 23:56  甜甜de微笑  阅读(252)  评论(0编辑  收藏  举报