1 概念介绍
1.1 WSGI
Python Web 服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。
python manage.py runserver 通常只在开发和测试环境中使用,当开发结束后,完善的项目代码需要再一个高效稳定的环境中运行,这时可以使用WSGI。
1.2 uWSGI
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
要注意 WSGI / uwsgi / uWSGI 这三个概念的区分:
-
WSGI是一种通信协议。
-
uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
-
而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
2 uWSGI配置
- 项目同名文件夹下创建 uwsgi.ini
- 添加以下配置
[uwsgi] #http通信方式的IP地址:端口号 http = 127.0.0.1:8000 #套接字方式的IP地址:端口号(此模式需要哟有nginx) #socket= 127.0.0.1:8000 # 项目当前工作目录 chdir = /Users/zhangsen/PythonProjects/day08/mysite7 # 项目中wsgi.py文件的目录,相对于当前工作目录 wsgi-file = mysite7/wsgi.py # 进程个数 process = 4 #每个进程的线程个数 threads = 2 pidfile = uwsgi.pid daemonize = uwsgi.log master = true
- 将 settings.py文件中的 DEBUG=True 改为 DEBUG=False
- 将 settings.py文件中的 ALLOWED_HOSTS = [] 改为 ALLOWED_HOSTS = ['网站域名'] 或者 ALLOWED_HOSTS = ['服务监听的IP地址']
3 uWSGI使用
3.1 启动
- 切换到 uwsgi.ini 文件所在的路径
- 执行 uwsgi --ini uwsgi.ini
- 测试,浏览器打开相应的URL进行测试
3.2 停止
- 切换到 uwsgi.ini 文件所在的路径
- 执行 uwsgi --stop uwsgi.pid