背景
Django代码本地是通过python manage.py runserver指令完成相应的调试,使用的是Django自带的WSGI Server运行,开启的方式是单进程的。考虑到单进程支持的并发量不佳,经过调研选择nginx+uWSGI来完成远程服务器部署。
小工具平台nginx和uWSGI服务器之间配合工作
1)首先浏览器发起http 请求到nginx 服务器
2)Nginx 根据接收到请求包,进行url 分析,判断访问的资源类型,如果是静态资源,直接读取静态资源返回给浏览器
3)如果请求的是动态资源就转交给uwsgi服务器,uwsgi 服务器根据自身的uwsgi 和WSGI 协议,找到对应的Django 框架。
4)Django 框架下的APP应用进行逻辑处理后,将返回值发送到uwsgi 服务器,然后uwsgi 服务器再返回给nginx。
5)最后nginx将返回值返回给浏览器进行渲染显示给用户。
![](https://img.haomeiwen.com/i17433682/594d010a82e70bee.png)
附:小工具平台值的设置:
nginx配置:
location /tool/ { # 动态资源请求到uWSGI服务器
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; # 需要与mysite.xml配置文件中的 IP 和端口号必须保持一致
uwsgi_param UWSGI_SCRIPT mysite.wsgi;
uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite; #项目路径
}
location /tool/static { # 静态资源直接读取资源返回给浏览器
alias /data/wwwroot/mysite/static/; #静态资源存放的位置
}
uWSGI配置:
mysite.xml文件配置如下:
![](https://img.haomeiwen.com/i17433682/648275ddf960e75e.png)
注:mysite.xml文件的位置需要与manage.py文件在同一级
网友评论