3
votes

how are you? I have a server on DigitalOcean with Ubuntu 16.04 I am making a Flask Application with uWSGI and Nginx.

My files look like: wsgi.py:

from flaskapp import app
if __name__ == "__main__":
    app.run()

flaskapp.ini

[uwsgi]
limit-as = 512
module = wsgi:app
plugin = python
master = true
processes = 5
socket = flaskapp.sock
chmod-socket = 660
vacuum = true
die-on-term = true

/etc/systemd/system/flaskapp.service

[Unit]
Description=uWSGI instance to serve flaskapp
After=network.target

[Service]
User=blitwak
Group=www-data
WorkingDirectory=/home/blitwak/flaskapp
Environment="PATH=/home/blitwak/flaskapp/myprojectenv/bin"
ExecStart=/home/blitwak/flaskapp/myprojectenv/bin/uwsgi --ini flaskapp.ini

[Install]
WantedBy=multi-user.target

/etc/nginx/sites-available/flaskapp.conf

server {
    listen 80;
    server_name 162.243.76.55;

    charset utf-8;
    proxy_buffering on;
    proxy_buffer_size 1k;
    proxy_buffers 24 4k;
    proxy_busy_buffers_size 8k;
    proxy_max_temp_file_size 2048m;
    proxy_temp_file_write_size 32k;

    proxy_connect_timeout 75s;
    proxy_read_timeout 300s;


    location / {
        include uwsgi_params;
        uwsgi_pass unix:///home/blitwak/flaskapp/flaskapp.sock;

 uwsgi_param UWSGI_SCRIPT app.wsgi;

          uwsgi_buffer_size 32k;
          uwsgi_buffers 8 32k;
          uwsgi_busy_buffers_size 32k;


   }
}

and in /var/log/nginx/error.log it says a lot of times:

2017/01/19 15:58:18 [error] 19181#19181: *36 upstream prematurely closed connection while reading response header from upstream, client: {myip}, server: {myserver}, request: "POST /yajugue HTTP/1.1", upstream: "uwsgi://unix:///home/blitwak/flaskapp/flaskapp.sock:", host: "{myserver}", referrer: "http://{myserver}/jugarPrimeraVez"

Thank you very much!!!

How can I resolve it?

1
The uwsgi seems to be timing out or something and closing the connection early. I also notice you have a bunch of proxy_ directives which won't affect the uwsgi, you have to use the appropriate uwsgi_ directives. - Faisal Memon
But why uwsgi makes a time out? I can delete that proxy_directives - Brian M Litwak
Uwsgi is not timing out. The upstream server is closing the connection prematurely - Faisal Memon
I don-t understand. nginx is closing it? How I can resolve it? - Brian M Litwak
Flask is closing the connection, not NGINX. Is there any errors in the flask log? - Faisal Memon

1 Answers

0
votes

Maybe enough set rule for Flask app. For example:

sudo chmod 710 /var/www/flask_app 
sudo chown -R nginx: /var/www/flask_app