IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 14.nginx+python的实现方式 -> 正文阅读

[Python知识库]14.nginx+python的实现方式

nginx+python的实现方式

wsgi、uwsgi

wsgi
在这里插入图片描述

uwsgi
在这里插入图片描述

UWSGI支持http协议和WSGI协议,
他可以不依赖nginx,直接向外提供服务,
客户端可以直接将请求发给UWSGI ,
然后由它来连接python程序,来完成用户的请求与响应

单独的这一块就可以实现对外提供服务
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


uwsgi使用场景配置

在这里插入图片描述

1.如果用户请求的是静态文件,就由nginx处理
2.如果用户请求的是动态文件,就通过后面的uwsgi,转给python相关框架,框架解析代码,如果解析的过程中需要调用数据,就由框架去调用数据库, 最终将代码与数据封装成html页面依次返回给用户。

实现步骤:
步骤一、安装 python3 的环境
步骤二、安装 Django 框架、uwsgi
步骤三、配置Django工程
步骤四、配置uWSGI、配置Nginx


步骤一、安装 python3 的环境

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel zlib zlib-devel python3 python3-devel -y

步骤二、安装 Django 框架、uwsgi

升级pip
-i 通过国内的源来下载软件包
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip

在这里插入图片描述

安装django
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ django==2.1.8

在这里插入图片描述

安装uwsgi
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ uwsgi

在这里插入图片描述


步骤三、配置一个Django工程

cd /opt

django-admin.py startproject demosite

在这里插入图片描述

修改/opt/demosite/demosite下的settings.py

vim /opt/demosite/demosite/settings.py
将ALLOWED_HOSTS = [ ]改为**ALLOWED_HOSTS = [‘*’]
表示允许所有人访问

在这里插入图片描述

启动起来
python3 /opt/demosite/manage.py runserver 0.0.0.0:9999

在这里插入图片描述

在这里插入图片描述
到这还是不行的,我们还需要配置uWSGI、配置Nginx


步骤四、配置uWSGI、配置Nginx

配置uwsgi

vim /opt/demosite/uwsgi.ini

[uwsgi]
#uwsgi监听的端口
socket = 127.0.0.1:9999
#uwsgi启动进程数
workers = 2
#最大接收的请求数
max-requests = 1000
#buffer缓冲区大小
buffer-size = 30000
#进程pid存放路径
pidfile = /run/uwsgi.pid
#uwsgi日志存储路径
daemonize = /var/log/uwsgi.log

启动
uwsgi --ini /opt/demosite/uwsgi.ini

在这里插入图片描述

netstat -lntp

在这里插入图片描述


配置Nginx

vim /etc/nginx/conf.d/uwsgi.conf

server {
	listen 80;
	server_name django.test.com;

	location / {
		index  index.html;
		uwsgi_pass 127.0.0.1:9999;              #找到uwsgi的server端,将请求调度到uwsgi处理
		uwsgi_param UWSGI_CHDIR /opt/demosite;  #工程 所在的目录,项目运行在哪个路径 
		uwsgi_param UWSGI_SCRIPT demosite.wsgi;   #demosite.wsgi 表示demosite目录下的wsgi文件
	  										   	  #demosite/wsgi接口文件, /opt/demosite/demosite/wsgi.py
		include uwsgi_params;
	}
}

他俩连起来组成的是,demosite/wsgi接口文件, /opt/demosite/demosite/wsgi.py

	uwsgi_param UWSGI_CHDIR /opt/demosite; 
	uwsgi_param UWSGI_SCRIPT demosite.wsgi;

查看结果

在这里插入图片描述

至此就完成了uwsgi使用场景的配置


可能会遇到的问题

1.安装项目依赖的模块( 开发会在写一个re…文件里,不要手动去挨个安装 )
pip3 install -i https://mirrors.aliyun.com/simple/ -r /code/web/re.txt
-i 指定下载软件的源
-r 指定要下载的依赖软件的清单所在路径


2.nginx配置文件中,要匹配类文件的时候(例如静态文件),配置文件可以按以下方式写

location  /static {
        alias /code/web/static/;
	
    }

当请求匹配到/static的location后

alias /code/web/static/; == /code/web/static/;

但是改成root的话,会找不到文件
因为root /code/web/static/; == /code/web/static/static;

或者改成 root /code/web; 也可以
匹配到location时候,会自己加上/static
最终效果为:root /code/web/static/;

总之能找到正确的路径即可

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:07:23  更:2022-09-04 01:10:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 14:29:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计