flask+uwsgi+nginx(upstream prema

2019-08-21  本文已影响0人  请叫我雯子小姐的小爷

先摆一张问题的截图,nginx的error.log
问题显示的是upstream prematurely closed connection while reading response header from upstream, ...


image.png

这个可以理解为,nginx收到了一个GET请求,但是,当我将这个转交给uwsgi处理的时候,无法联系上uwsgi。然后我又查看了uwsgi的日志,开启后是正常的运行状态,但是,当我试图进入网站时,他会显示 ‘-- unavailable modifier requested: 0'
这其实就是Python的映射问题,需要安装一个插件,uwsgi-plugin-python(如果用的Python3 的话是 uwsgi-plugin-python3),可以直接 sudo apt install uwsgi-plugin-python 的方式来安装,

sudo apt install uwsgi-plugin-python #python
sudo apt install uwsgi-plugin-python3 #python3

然后在uwsgi的配置文件中加上

lugin = python3  # python3
plugin = python #python

下面附上我的uwsgi配置和nginx配置

#uwsgi.ini
[uwsgi]
socket = 127.0.0.1:8001
#运行在127.0.0.1:8001端口上

chdir = /mnt/websites/flask
#flask程序的目录在chdir这里定义

wsgi-file = app.py
#flask主程序名字

callable = app
程序中的主变量名字

buffer-size=32768
接受的大小,需设置一下,不然也会出错

plugin = python3
#添加Python的映射

processes = 4
threads = 2
logto = /mnt/websites/log/%n.log
stats = 127.0.0.1:9191
# nginx.conf
server {
        listen       81; 
        server_name  192.168.1.100;
        #charset koi8-r;
        access_log  /mnt/websites/log/access.log;
        error_log  /mnt/websites/log/error.log;

        location / {
            include        uwsgi_params;
            uwsgi_pass     127.0.0.1:8001;
            uwsgi_param UWSGI_PYHOME /usr/local/bin/pythonenv/flaskenv;
            uwsgi_param UWSGI_CHDIR  /mnt/websites/flask;
            uwsgi_param UWSGI_SCRIPT app:app;
        }

    }

配置完成后将nginx.conf 放到 /etc/nginx/conf.d/ 文件夹下,并且重启nginx服务以及uwsgi服务

sudo mv nginx.conf /etc/nginx/conf.d/
sudo /etc/init.d/nginx restart
uwsgi -d --ini uwsgi.ini #-d意味着后台守护运行,--ini是从ini文件中读取配置

这样在浏览器输入192.168.1.100:81(或者你的公网地址:81)就会自动跳转到你的flask网站

上一篇下一篇

猜你喜欢

热点阅读