python环境-centos + nginx + uwsgi + python

https://www.cnblogs.com/baihualin/p/12133856.html

一、主体的环境流程:

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端口:

到此已经安装完成;

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值