位置: 编程技术 - 正文
推荐整理分享使用Nginx+uWsgi实现Python的Django框架站点动静分离(如何使用nginx),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:如何使用nginx,nginx uwsgi django,nginx uwsgi_pass,nginx uwsgi,nginx use,nginx使用教程,nginx+uwsgi+flask,nginx+uwsgi+flask,内容如对您有帮助,希望把文章链接给更多的朋友!
由于:
Django处理静态文件不太友好;以后有可能需要处理php或者其他资源的请求;
所以考虑结合nginx,使用nignx做它擅长的路由分发功能;同时做动静分离,即Http请求统一由Nginx进行分发,静态文件由Nginx处理,并返回给客户端;而动态的请求,则分发到uWsgi,由uWsgi再分发给Django进行处理。即客户端 <-> nginx <-> socket <-> uwsgi <-> Django
一、环境
系统:centOS 6
python: 2.7(注意:Django要在2.7版本或以上的python来 ) nginx uswgi所以,安装前,先在控制台输入python —version查看当前python的默认版本,如果在2.7以下,则修改默认版本。(详见附录)
二、安装nginx、uWsgi
安装
安装
安装
三、测试nginx、uWsgi1. 测试nginx启动测试nginx,看是否安装成功启动 sudo service nginx start然后在浏览器中,输入ip地址,看是否出现nginx的欢迎页面,出现则说明安装成功2. 测试uWsgi在服务器上做任意目录下(一般在home下的某一目录),新建test.py,如下:
启动以Http方式访问的uWsgi,在test.py同一目录下,输入如下命令行(是监听的端口,可以改成你想要的端口)
然后在浏览器中,输入ip地址:,看是否响应hello world,是则说明安装成功P.S. 由于开始时,uwsgi的安装使用了错误的python版本,所以在我的服务器上,uwsgi正确地可执行命令暂时是:/usr/src/download/uwsgi-2.0./uwsgi即完整的命令行是(本文所有的uwsgi命令同此):/usr/src/download/uwsgi-2.0./uwsgi --http : --wsgi-file test.py--http : --wsgi-file test.py至此,uwsgi和nginx安装成功。接下来把nginx、uwsgi、django关联起来。在它们的协作之下,达到我们想要的目标。
四、连接Django和uWsgi如上uWsgi的测试那样,uWsgi监听端口,并把请求分发给test.py,python会执行这个文件,如果我们把test.py分给Django的入口文件,那么就实现了Django和uWsgi的连接。所以,要做的事情有两步:
在项目目录下创建wsgi.py文件启动uWsgi,使用它的wsgi-file指向wsgi.py
wsgi.py内容如下:
启动以Http方式访问uWsgiuwsgi --http : --chdir /home/jiayandev/WHPAIWechat/ --wsgi-file WHPAIWechat/wsgi.py浏览器访问 ip地址:,加上必要的路由,即可访问之前写好的python程序:例如 你是否关注到,启动uwsgi即可,而无需再启动Django了?
五、连接uWsgi和nginx接下来,打通 uWsgi和 nginx之间的连接,它们是通过socket来连接的。第四节所讲的链接 swgi和Django,我们用浏览器访问是能得到正确的响应的,说明连接成功。那么只要在nginx上,实现某些规则下,把前端的请求转发到此端口即可。要做的事情非常简单,即配置nginx的配置文件即可,一般在 /etc/nginx/conf.d/default.conf中。这里,我只设置几条简单的规则
url包含.css、.js等服务器特定目录,设置根目录以上都不匹配的的访问分发到uwsgi上的, nginx转发给uswgi处理
更多规则可以视业务情况而定,完整的配置如下:
同时,uswgi_param内容如下,照抄即可
配置完成后,重启或者reload nginx配置即可生效重启:
reload:
然后直接访问,看看有什么不一样: 等等。这里介绍另一种设置参数的方式,即用配置文件记录uwsgi的参数,启动时,从配置文件里加载参数。参数如下
启动uwsgi命令变成uwsgi WHPAIWechat_uwsgi.ini
python编写简单爬虫资料汇总 爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2、BeautifulSoup实现简单爬虫,scrapy也有实现过。最近想更好的学习爬虫,那么就尽可能的做记
Python使用Redis实现作业调度系统(超简单) 概述Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。Redis从它的许多竞争继承来的三个主要特点:Redis
在windows系统中实现python3安装lxml lxml是Python中与XML及HTML相关功能中最丰富和最容易使用的库。lxml并不是Python自带的包,而是为libxml2和libxslt库的一个Python化的绑定。它与众不同的地方是
标签: 如何使用nginx
本文链接地址:https://www.jiuchutong.com/biancheng/384393.html 转载请保留说明!友情链接: 武汉网站建设