Nginx代理Python项目

人码图技术分享993

创建django项目:

服务器准备:

主机ip
web02192.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

10、测试


相关文章

mkvtoolnix封装操作

mkvtoolnix封装操作

mkvtoolnix命令行批量封装添加字幕及更改默认音轨mkvtoolnix命令行批量执行,添加字幕及更改默认音轨操作代码准备工具:mkvtoolnix v58以上,视频文件与相应的字幕文件(影视文件...

Python | Conda pack 进行环境打包

Python | Conda pack 进行环境打包

conda 常用来执行虚拟环境配置和包管理工作,有时候需要将本地的环境一直到新的离线的机器上,可以使用conda-pack 进行conda 环境打包和分发。安装conda 安装conda&n...

在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程

在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程

最近尝试把项目迁移到Python环境下,特别新装了一台干净的Debian系统,准备重新配置环境,上网找了一些运行Python Web的环境方案,最后敲定Nginx+uWSGI组合,Nginx用得比较多...

开源--Prometheus

开源--Prometheus

前言Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统。周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警发...

python环境的打包与加载

python环境的打包与加载

目录1 pip方式1.1 requirements.txt文件的生成1.2 requirements.txt环境的加载:2 conda方式2.1 env.yml文件的生成2.2 env.yml文件的加...

centOS_7_mysql安装、防火墙配置手记

centOS_7_mysql安装、防火墙配置手记

centOS 7 mysql安装手记  (文中图片引用自网络,侵删!) 0.删除mariadbrpm -qa | grep -i mariadbrpm -e --nodeps mariadb-libs...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。