您现在的位置是:主页 > news > 企业网站硬件设计/烟台网络推广
企业网站硬件设计/烟台网络推广
admin2025/5/22 14:25:41【news】
简介企业网站硬件设计,烟台网络推广,php网站迁移,软件工程师是什么专业文章目录LNMP架构与uwsgi协议LNMP架构什么是LNMP架构为什么要用LNMP架构静态请求与动态请求Nginx遇到请求的处理方案uwsgi协议什么是uwsgi协议uwsgi协议作用uwsgi服务部署LNMP架构与uwsgi协议 LNMP架构 什么是LNMP架构 LNMP是一套技术的组合,LLinux、NNginx、M~My…
企业网站硬件设计,烟台网络推广,php网站迁移,软件工程师是什么专业文章目录LNMP架构与uwsgi协议LNMP架构什么是LNMP架构为什么要用LNMP架构静态请求与动态请求Nginx遇到请求的处理方案uwsgi协议什么是uwsgi协议uwsgi协议作用uwsgi服务部署LNMP架构与uwsgi协议
LNMP架构
什么是LNMP架构 LNMP是一套技术的组合,LLinux、NNginx、M~My…
文章目录
- LNMP架构与uwsgi协议
- LNMP架构
- 什么是LNMP架构
- 为什么要用LNMP架构
- 静态请求与动态请求
- Nginx遇到请求的处理方案
- uwsgi协议
- 什么是uwsgi协议
- uwsgi协议作用
- uwsgi服务部署
LNMP架构与uwsgi协议
LNMP架构
什么是LNMP架构
LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL(数据库)、P~=Python(后端编程语言)
为什么要用LNMP架构
- 因为 Nginx服务只能处理静态请求,不能处理动态请求
静态请求与动态请求
- 静态请求: 请求内容是静态文件
- 静态文件: 文件上传到服务器,永远不会改变的文件就是静态文件
- html就是一个标准的静态文件
- 动态请求: 请求的内容是动态的
- 不是真实存在服务器上的内容,是通过数据库或者其他服务拼凑成的数据
Nginx遇到请求的处理方案
- 当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回,如果是动态请求Nginx则通过uwsgi协议转交给后端的python程序处理
uwsgi协议
什么是uwsgi协议
- 与WSGI一样是一种通信协议,是uWSGI服务器的独占协议,用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型的描述,与WSGI协议是两种东西,据说该协议是fcgi协议的10倍快。
uwsgi协议作用
- 因为nginx不支持wsgi协议,无法直接调用py开发的webApp,因此需要uswgi协议来转发请求
- 在nginx+uWsgi+Django的框架里,nginx代理+webServer,uWsgi是wsgiServer,Django是webApp
- nginx接收用户请求,并判定那些转发到uWsgi,uWsgi再去调用pyWebApp
- 通过uwsgi来调用python代码,能够有效提高程序的性能
uwsgi服务部署
1、创建用户
[root@web01 opt]# groupadd django -g 888
[root@web01 opt]# useradd django -u 888 -g 888 -r -M -s /bin/sh2、安装依赖软件
[root@web01 opt]# yum install python3 libxml* python-devel gcc* pcre-devel openssl-devel python3-devel -y3、安装Django和uwsgi
[root@web01 opt]# pip3 install django
[root@web01 opt]# pip3 install uwsgi4、创建项目
[root@web01 opt]# cd /opt
[root@web01 opt]# django-admin startproject linux
[root@web01 opt]# cd linux
[root@web01 opt]# django-admin startapp app01
[root@web01 linux]# vim linux/settings.py
ALLOWED_HOSTS = ['*']
DATABASES = {}
# 启动测试
[root@web01 linux]# python3 manage.py runserver 0.0.0.0:8000
5、编辑项目配置文件
[root@localhost ~]# cat /opt/linux/myweb_uwsgi.ini
[uwsgi]
# 端口号
socket = :8000
# 指定项目的目录
chdir = /opt/linux
# wsgi文件路径
wsgi-file = linux/wsgi.py
# 模块wsgi路径
module = linux.wsgi
# 是否开启master进程
master = true
# 工作进程的最大数目
processes = 4
# 结束后是否清理文件
vacuum = true6、启动uwsgi
[root@web01 linux]# uwsgi -d --ini myweb_uwsgi.ini --uid 666-d : 以守护进程方式运行
--ini : 指定配置文件路径
--uid : 指定uidTCP 服务7、编辑Nginx配置文件
[root@localhost ~]# cat /etc/nginx/conf.d/python.conf
server {listen 80;server_name py.test.com;location / { include uwsgi_params;uwsgi_pass 127.0.0.1:8000;uwsgi_read_timeout 2;uwsgi_param UWSGI_SCRIPT linux.wsgi;uwsgi_param UWSGI_CHDIR /opt/linux;index index.html index.htm;client_max_body_size 35m;}
}8、重启Nginx配置
systemctl restart nginx
- 成功配置后输入域名就能够访问django页面了