Nginx代理Python项目
创建django项目:
服务器准备:
主机 | ip |
---|---|
web02 | 192.168.15.8 |
1、安装python3
yum install python3 -y
查看是否安装成功
python3
查看pip3版本
pip3 -V
2、安装django框架
pip3 install django==2.2.2
3、创建django项目
cd /opt/
django-admin startproject dzg
4、在项目中创建应用
cd dzg/
django-admin startapp application
5、修改配置文件
vim /opt/dzg/dzg/settings.py
ALLOWED_HOSTS = ['*']
DATABASES = {}
6、启动测试
python3 manage.py runserver 0.0.0.0:8000
Nginx代理Python项目:
1、创建用户
groupadd django -g 888
useradd django -u 888 -g 888 -r -M -s /bin/sh
2、安装依赖包
yum install python3 libxml* python-devel gcc* pcre-devel openssl-devel python3-devel -y
3、为什么要用uWsgi
因为nginx不支持wsgi协议,无法直接调用py开发的webApp。
在nginx+uWsgi+Django的框架里,nginx代理+webServer,uWsgi是wsgiServer,Django是webApp。
nginx接收用户请求,并判定哪些转发到uWsgi,uWsgi再去调用pyWebApp。
4、安装uwsgi
pip3 install uwsgi
5、编辑项目启动配置文件
cd /opt/dzg
vim my_uwsgi.ini
写入下面内容
[uwsgi]
# 端口号
socket = :8000
# 指定项目的目录
chdir = /opt/dzg
# wsgi文件路径
wsgi-file = dzg/wsgi.py
# 模块wsgi路径
module = dzg.wsgi
# 是否开启master进程
master = true
# 工作进程的最大数目
processes = 4
# 结束后是否清理文件
vacuum = true
6、启动uwsgi
uwsgi 参数:
-d : 以守护进程方式运行
--ini : 指定配置文件的路径
cd /opt/dzg
uwsgi -d --ini my_uwsgi.ini
ps -ef | grep uwsgi
7、配置Nginx连接uwsgi
/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 dzg.wsgi;
# 指定python项目的路径
uwsgi_param UWSGI_CHDIR /opt/dzg;
# 索引文件
index index.html index.htm;
# 客户端上传文件的最大值
client_max_body_size 35m;
}
}
8、重启Nginx
systemctl restart nginx
9、修改Windows的hosts文件
C:\Windows\System32\drivers\etc
192.168.15.8 py.test.com