内容简介:后端开发应用中,除了Nginx + php-fpm + PHP这个组合之外,还有一个常用组合是:Nginx + uwsgi + Python组合。这个组合中,经常使用的Python框架是Django和Flask。它们都遵循Python标准的网关协议,所以运行的设置基本是一致的。这个模式下: 静态资源交给nginx提供服务,其它的请求,转给uwsgi,由python进行处理后返回结果,这与php-fpm是一样的。uwsgi支持的选项非常多,但是要跟nginx的配置相互匹配,否则就会报错,一般是连不上、502
后端开发应用中,除了Nginx + php-fpm + PHP这个组合之外,还有一个常用组合是:Nginx + uwsgi + Python组合。这个组合中,经常使用的 Python 框架是Django和Flask。它们都遵循Python标准的网关协议,所以运行的设置基本是一致的。
这个模式下: 静态资源交给nginx提供服务,其它的请求,转给uwsgi,由python进行处理后返回结果,这与php-fpm是一样的。
uwsgi支持的选项非常多,但是要跟nginx的配置相互匹配,否则就会报错,一般是连不上、502超时错误。这时打开nginx的错误日志可以查看具体原因。
这里面很重要的一点是:确定uwsgi使用的操作模式,就是接口形式是什么类型。
1、如果uwsgi使用http模式,nginx必须用proxy_pass 指令传递。
uwsgi –http :8002
nginx 配置必须是: proxy_pass 指令
例如:
proxy_pass http://127.0.0.1:8002
比如,你用pycharm等IDE跟nginx对接调试,那么就应该使用http的proxy_pass模式,否则就会出现错误,无法使用。
2、如果uwsgi使用socket模式,那么必须使用对应的ip:port 或者 unix socket方式
与之对应的socket,也分成ip:port 和 unix socket,推荐后者。
uwsgi –socket /dev/shm/django.sock –wsgi-file myapp/wsgi.py
nginx配置是:
upstream django {
server unix:/dev/shm/django.sock;
}
必须保持一致!
但是,它同时带来另外一个问题:权限。这个django.sock如果创建的权限与nginx运行时使用的用户权限不匹配,就无法使用,会报告502错误。
在Nginx出现502错误要怎么处理呢?
502错误一般都是nginx后面脚本解析器的错误,不是nginx的错误。比如连接不上就报告502.
第一先把nginx的配置修改成记录错误:
error_log /home/wwwlogs/error_nginx.log error; #crit;
然后查看日志:
2018/05/11 09:47:00 [crit] 5843#0: *2 connect() to unix:/dev/shm/django.sock failed (13: Permission denied) while connecting to upstream, client: 10.1.1.103, server: test.test.com, request: “GET / HTTP/1.1”, upstream: “uwsgi://unix:/dev/shm/django.sock:”, host: “test.test.com”
日志里面的记录说明,原因非常明显。
还有可以参考这里面的说明:
http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
选项文档:
http://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Options.html?highlight=chmod-socket
这里的知识,希望能对大家有所帮助。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
REST实战
Jim Webber、Savas Parastatidis、Ian Robinson / 李锟、俞黎敏、马钧、崔毅 / 东南大学出版社 / 2011-10 / 78.00元
为何典型的企业项目无法像你为web所开发的项目那样运行得如此平滑?对于建造分布式和企业级的应用来说,rest架构风格真的提供了一个可行的替代选择吗? 在这本富有洞察力的书中,三位soa专家对于rest进行了讲求实际的解释,并且通过将web的指导原理应用到普通的企业计算问题中,向你展示了如何开发简单的、优雅的分布式超媒体系统。你将会学习到很多技术,并且随着一家典型的公司从最初的小企业逐渐成长为......一起来看看 《REST实战》 这本书的介绍吧!