一、 主体的环境流程:

1、用户(PC)向web服务器发起http请求

2、web服务器判断用户请求文件是否为静态文件,是则直接读取静态文件并返回给用户,不是则通过WSGI协议将请求丢给web框架(django)代码处理

3、看web框架是否启动django中间件,如果启用,则依据中间件对请求进行修改,如果不启用,则进入下一步

4、web框架中的路由程序将根据请求中的url文件名将请求路由至相应py文件

5、相应py文件收到请求后根据用户提交的参数进行计算(期间可能会调用数据库),然后返回计算后的结果和自定义头部信息以及状态码返回

6、web框架将返回的数据打上通用标识符(头部信息)后返回给web服务器

7、web服务器打上web服务器的通用标识符(头部信息)后返回给用户

8、用户收到返回的数据

二、 nginx web服务器是不能直接和python进行通信连接的:在nginx和python应用之间加一层支持WSGI协议的web服务器。以后静态文件由nginx进行处理,动态文件丢给WSGI服务器,然后WSGI服务器再丢给web框架处理。最理想的支持WSGI协议的web服务器就是uWSGI。

三、安装uwsgi   ;进入python里的bin目录:使用  pip来进行安装

pip3.5  install  uwsgi

安装完成后会在当前目录生成:uwsgi

代表uwsgi已经安装成功了;

四、 开启uwsgi web服务器并进行配置:

①:直接命令启动:uwsgi --http 127.0.0.1:8080 --file teacher/wsgi.py --static-map=/static=static


--http 监听IP端口

--file 项目wsgi.py文件路径

--static-map 静态文件路径

②:配置文件启动

生成一个uwsgi.ini文件

[uwsgi]
# 监听端口(nginx采用反向代理模式时必填)
http = 0.0.0.0:8888
# 项目目录
chdir=/opt/test/test1/
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定项目的application(我猜是这里的“test1.wsgi”拼接上面的项目目录后,就将项目中的wsgi.py文件和uWSGI服务器关联起来了)
module=test1.wsgi:application
# 指定sock的文件路径(nginx采用本地模式时必填)
socket=/opt/test/script/uwsgi.sock
# 启用主进程
master=true
# 进程个数
workers=5
pidfile=/opt/test/script/uwsgi.pid
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=4096
# 设置日志目录
daemonize=/opt/test/script/uwsgi.log
# 设置隔多久加载一次项目代码
py-autoreload=1

完成后:需要把配置指向uwsgi程序:./uwsgi --ini /uwsgi.ini

启动:./uwsgi --start  uwsgi.pid

到此完成ini配置;

五、 配置nginx和uwsgi联通:

server {
    listen       8989;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        include uwsgi_params; # 指定nginx和uWSGI服务器的通信方式
        uwsgi_connect_timeout 30;
        uwsgi_pass unix:/opt/test/script/uwsgi.sock;    # 通过sock文件和uWSGI服务器关联! 因为nginx会去读取.sock文件,所以需要关闭selinux才行!!!

到此配置完成:

测试一下:让在游览器上输出:hello python centos+nginx+uwsgi+python

访问虚拟机+8989端口:

到此已经安装完成;

https://www.cnblogs.com/baihualin/p/12133856.html一、主体的环境流程:1、用户(PC)向web服务器发起http请求2、web服务器判断用户请求文件是否为静态文件,是则直接读取静态文件并返回给用户,不是则通过WSGI协议将请求丢给web框架(django)代码处理3、看web框架是否启动django中间件,如果启用,则依据中间件对请求进行修改,如果不启用,则进入下一步4、web框架中的路由程序将根据请求中的url文件名将请求路由至相应py文
阿里云服务器:centos7.8 + nginx 1.21.5 + python 3.9 + php7.4 之前服务器使用的是Apache,现在想PHP 和Python 共存,又因为python 方面都是使用flask 框架,flask 中自带的服务器比较差,所以最后决定尝试使用nginx。 虽然是用nginx ,其实它的主要作用是代理的,运行flask 的核心是uwsgi,流程大概是这样: uwsgi 其实也是一个服务器,我只是将它简化了这样显示,实际上不要nginx ,...
如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 一、安装python3.6 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel r...
注意 :第一步,一定要先安装,否则后面会有莫名奇妙的问题 : yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel xz gcc zlib zlib-devel yum install yun-utils make get wget python地址(以tgz结尾的,例如...
今天在使用centos下的pip3 install uwsgi安装uwsgi之后,发现uwsgi默认的python解释器是centos自带的python2.7,使用uwsgi命令时总是报错无法导入django.core.wsgi,如需将uwsgi解释器改为python3,请根据以下步骤 1.获取最新版uwsgi wget http://projects.unbit.it/downloads/uw...
前提声明:    python开发web,就现阶段的本人认知来收,还不是很成熟和优势鲜明,同样是脚本开发,开发便利性不如php,企业级开发不如java。唯一的优势就是类库基数大,基本上什么库都找得到,还有就是语法比较优美,仅此而已。而且在国内的应用也比较少和局限,大部分人还是用python来做运行性的脚本。   所以本文仅止于浅显地探讨一下python如何在linux下进行web开发,如何深入
文章目录nginx + uwsgi什么是WSGI什么是uWSGI什么是uwsgiuWSGI+Nginx部署Django项目Django Nginx+uwsgi 安装配置 nginx + uwsgi 什么是WSGI WSGI是一种 python专用 的web协议。 WSGI实质:WSGI是一种描述web服务器(如 nginxuWSGI web服务器 )如何与 web框架 (如用Django、Flask框架写的程序)通信的规范、协议 WSGI定义了使用 python编写的web app(django)与web
```bash sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --reload 现在您的 Flask 应用程序应该已经准备好在 CentOS 上部署了!