动态请求:采用uwsgi与Django进行通讯处理动态业务。css
静态请求:采用Ngins经过socket与uwsgi进行通讯处理静态业务。html
[uwsgi] # 使用Nginx链接时使用,Django程序所在服务器地址 # socket=192.168.0.105:8001 # 直接作web服务器使用,Django程序所在服务器地址 http=192.168.0.105:8001 # 项目目录 chdir=/home/python/Desktop/meiduo_rest/meiduo_mall # 项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=meiduo_mall/wsgi.py # 进程数 processes=4 # 线程数 threads=2 # uwsgi服务器的角色 master=True # 存放进程编号的文件 pidfile=uwsgi.pid # 日志文件 daemonize=uwsgi.log # 指定依赖的虚拟环境 virtualenv=/home/python/.virtualenvs/Py3_Django1.11
uwsgi:遵循wsgi协议的程序,须要使用http协议进行通讯。python
# 启动 uwsgi --ini uwsgi.ini # 中止 uwsgi --stop uwsgi.pid
利用浏览器向配置文件中的HTTP属性信息发送请求便可。nginx
经过浏览器发送请求,可以获取到响应则表示uwsgi和Django程序可以正常进行通讯了。web
将uwsgi中的配置属性HTTP注释掉,启用socket属性。vim
[uwsgi] # 使用Nginx链接时使用,Django程序所在服务器地址 socket=192.168.0.105:8001 # 直接作web服务器使用,Django程序所在服务器地址 # http=192.168.0.105:8001 # 项目目录 chdir=/home/python/Desktop/meiduo_rest/meiduo_mall # 项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=meiduo_mall/wsgi.py # 进程数 processes=4 # 线程数 threads=2 # uwsgi服务器的角色 master=True # 存放进程编号的文件 pidfile=uwsgi.pid # 日志文件 daemonize=uwsgi.log # 指定依赖的虚拟环境 virtualenv=/home/python/.virtualenvs/Py3_Django1.11
经过编写Nginx的配置文件,实现Nginx与uwsgi进行通讯。浏览器
# 跳转到配置文件目录 cd /etc/nginx/sites-enabled/ # 建立一个配置文件 sudo vim meiduo
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { # 导入uwsgi使用的变量 include uwsgi_params; # 经过负载均衡设置uwsgi uwsgi_pass meiduo; }
测试并从新加载Nginx配置信息。服务器
# 测试 sudo nginx -t # 从新加载 sudo nginx -s reload
修改Nginx配置文件,便可实现。负载均衡
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { include uwsgi_params; uwsgi_pass meiduo; } location /static { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/; } }
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { include uwsgi_params; uwsgi_pass meiduo; } # 主页静态文件:css、js等 location /static { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/; } # 详情页面 location /detail { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/detail/; } }
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { include uwsgi_params; uwsgi_pass meiduo; } # 首页路由 location = /{ root /home/python/Desktop/meiduo_rest/meiduo_mall/static; index index.html; } # 首页静态化 location = /index.html{ root /home/python/Desktop/meiduo_rest/meiduo_mall/static; index index.html; } # 主页静态文件:css、js等 location /static { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/; } # 详情页面 location /detail { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/detail/; } }
首页静态化配置,能够理解为当用户在浏览器输入www.meiduo.site时,浏览器会自动在url后拼接一个/,socket
Nginx进行路由匹配后,会将http://www.meiduo.site/地址,修改为http://www.meiduo.site/index.html地址并进行请求。
原文出处:https://www.cnblogs.com/chao666/p/12344835.html