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

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

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

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


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

查看所有标签

猜你喜欢:

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

Convergence Culture

Convergence Culture

Henry Jenkins / NYU Press / 2006-08-01 / USD 30.00

"Convergence Culture" maps a new territory: where old and new media intersect, where grassroots and corporate media collide, where the power of the media producer, and the power of the consumer intera......一起来看看 《Convergence Culture》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码