uwsgi 使用

 一、概念释义

### WSGI

WSGI 是一个Web服务器(如nginx)与应用服务器(如uWSGI)通信的一种规范(协议)。官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

在生产环境中使用WSGI作为python web的服务器。Python Web服务器网关接口,是Python应用程序或框架和Web服务器之间的一种接口,被广泛接受。WSGI没有官方的实现, 因为WSGI更像一个协议,只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行。
### uWSGI

uWSGI 实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器。把 HTTP 协议转化成语言支持的网络协议。uWSGI代码完全用C编写,效率高、性能稳定。

### uwsgi
(注意:此处为小写,是另一个东西,和 uWSGI 不一样)
uwsgi是一种线路协议,不是通信协议,常用于在uWSGI服务器与其他网络服务器的数据通信。uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型。

#### 小结:
WSGI    -->  网关、接口
uWSGI  -->  一种服务
uwsgi    -->  线路协议

## 二、启动停止重启

uWSGI 通过 xxx.ini 启动后会在相同目录下生成一个 xxx.pid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号。

#### 启动:
uwsgi --ini xxx.ini
#### 重启:
uwsgi --reload xxx.pid
#### 停止:
uwsgi --stop xxx.pid

结合django 使用:

1.配置 uwsgi.ini文件,参考 python+ nginx + django + uwsgi 之 (四 - 结束) nginx 和 uwsgi 结合

这里我们再加入.pid文件

[uwsgi]
socket=127.0.0.1:9090
chdir=/home/wwwroot/files.***.com/wandehua
module=wandehua.wsgi:application
master=true
vhost=true
no-site=true
workers=2
reload-mercy=10
vacuum=true
max-requests=1000
limit-as=512
buffer-size=30000
daemonize=/home/wwwroot/files.***.com/wandehua/uwsgi.log
pidfile=/home/wwwroot/files.***.com/wandehua/uwsgi.pid

2.启动uwsgi

[root@iZwz96p7abljvv5gfgb34lZ wandehua]# uwsgi --ini /home/wwwroot/file.***.com/wandehua/uwsgi.ini 
[uWSGI] getting INI configuration from /home/wwwroot/file.***.com/wandehua/uwsgi.ini

  查看一下我们生成pidfile生成的pid文件, 17111是我们此次uwsgi生成的主进程号

[root@iZwz96p7abljvv5gfgb34lZ wandehua]# ls
db.sqlite3  manage.py  uwsgi.ini  uwsgi.log  uwsgi.pid  wandehua  weidoo
[root@iZwz96p7abljvv5gfgb34lZ wandehua]# cat uwsgi.pid 
17111
[root@iZwz96p7abljvv5gfgb34lZ wandehua]# ps -aux|grep uwsgi
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     11570  0.0  0.0 105368   888 pts/3    S+   14:34   0:00 grep uwsgi
root     17111  0.1  0.3 239632 27744 ?        S    14:22   0:00 uwsgi --ini /home/wwwroot/file.***.com/wandehua/uwsgi.ini
root     17155  0.0  0.2 239632 24304 ?        S    14:22   0:00 uwsgi --ini /home/wwwroot/file.***.com/wandehua/uwsgi.ini
root     17156  0.0  0.2 239632 24304 ?        S    14:22   0:00 uwsgi --ini /home/wwwroot/file.***.com/wandehua/uwsgi.ini

3. 重启

[root@iZwz96p7abljvv5gfgb34lZ wandehua]# uwsgi --reload /home/wwwroot/file.***.com/wandehua/uwsgi.pid 
[root@iZwz96p7abljvv5gfgb34lZ wandehua]# 

4.停止

[root@iZwz96p7abljvv5gfgb34lZ wandehua]# uwsgi --stop /home/wwwroot/file.***.com/wandehua/uwsgi.pid 
[root@iZwz96p7abljvv5gfgb34lZ wandehua]# 

猜你喜欢

转载自blog.csdn.net/wan271920545/article/details/86506790