后端服务器设置nginx + uwsgi + django/flask需要注意的问题

栏目: Python · 发布时间: 6年前

内容简介:后端开发应用中,除了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

这里的知识,希望能对大家有所帮助。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

必然

必然

凯文·凯利 (Kevin Kelly) / 周峰、董理、金阳 / 译言·东西文库/电子工业出版社 / 2016-1-1 / 58

《必然》的作者凯文·凯利,被称为“硅谷精神之父”和“世界互联网教父”。前两部《失控》和《科技想要什么》在中国出版后,引起巨大反响。书中凯文·凯利对十二种必然的科技力量加以详细的阐述,并描绘出未来三十年这些趋势如何形成合力指引我们前行的方向。 作者凯文·凯利基于过往从业经历和对未来趋势的敏锐观察对十二个关键词“形成”“知化”“流动”“屏读”“使用”“共享”“过滤”“重混”“互动”“追踪”“提问......一起来看看 《必然》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具