前情提要:安装nginx及相关知识
----------------------------------------------------------------------------------
1、安装uWSGI
pip install uwsgi
uwsgi --version
2、测试uWSGI
新建test.py,内容如下
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World"
执行命令
uwsgi -s 127.0.0.1:8080 -w test.py
-s 代表启动一个socket,监听对应端口,当前设置为8080端口
-w 为 --wsgi-file 的简写,指定运行文件
打开浏览器,访问 127.0.0.1:8080 查看是否可以准确访问。
3、新建Django工程
安装Django
pip install django
新建test工程
cd ~
django-admin.py startproject test
4、uWSGI配置文件
uwsgi.ini 文件
[uwsgi]
socket = 127.0.0.1:8080 // 绑定端口
master = true // 主进程
vhost = true // 多站模式
no-site = true // 多站模式时不设置入口模块和文件
workers = 2 // 子进程数
reload-mercy = 10 // 设置在平滑的重启(直到接收到的请求处理完才重启)一个工作子进程中,等待这个工作结束的最长秒数
vacuum = true // 退出、重启时清理文件
max-requests = 1000 // 为每个工作进程设置请求数的上限
limit-as = 512 // 限制每个uWSGI进程的虚拟内存使用数
buffer-size = 32768 // 用于uwsgi包解析的内部缓存区大小。默认是4k
pidfile = ~/uwsgi8080.pid // 在失去权限前,将pid写到指定的pidfile文件中。
daemonize = ~/uwsgi8080.log // 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
对于 pidfile 和 daemonize 的路径需要自行配置,端口也需自行修改
** 修改 nginx.conf 中 http.server.location 的值 **
修改后如下:
location / {
include uwsgi_params; # uwsgi程序
uwsgi_pass 127.0.0.1:8080; # 在uwsgi.ini中的socket端口
uwsgi_param UWSGI_SCRIPT test.wsgi; # test.wsgi为django生成的wsgi配置文件,在test/test/目录下
uwsgi_param UWSGI_CHDIR /root/test; # 绑定django工程的根路径
index index.html;
client_max_body_size 35m;
}
对于其中 test 需要和自定义的项目名称一致
5、启动
加载配置文件
uwsgi --ini uwsgi.ini
启动nginx
使用浏览器打开对应服务器ip地址即可
当django项目中修改后,需要重新加载uwsgi
uwsgi --reload pid文件路径