Question

502 error for deploying flask + nginx + uwsgi in centos

Posted December 16, 2020 722 views
NginxCentOSPythonFlask

I was following the following tutorial: https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-centos-7

to deploy a flask app on our hosting but I am running into a permissions issue for nginx.

The details are described in this stackoverflow post here: https://stackoverflow.com/questions/65308170/nginx-cant-read-sock-file-when-deploying-flask-uwsgi-nginx

When I run nginx as root, everything works fine so I am pretty sure it’s a permission issue but I’m not able to find out where am I going wrong.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hi there @abhyudayasrinet,

What I could suggest is checking your Nginx error log for more information on what the actual problem is rather than the generic 502 error.

To do so, you could run the following command:

  • sudo tail -100 /var/log/nginx/error.log

For more information on how to troubleshoot common Nginx problems, you could follow the steps here:

https://www.digitalocean.com/community/questions/how-to-troubleshoot-common-nginx-issues-on-linux-server

Feel free to post the errors here as well.
Regards,
Bobby

  • Hi,
    Thanks for the tip. I have been looking at the error log. I’ve posted the error I see in it at the SO link posted in the question.

    Basically, I see this

    2020/12/15 22:27:26 [crit] 29501#0: *3 connect() to unix:/home/user/mim-flask.mim-essay.com/myproject.sock failed (13: Permission denied) while connecting to upstream, client: 172.69.135.235, server: mim-flask.mim-essay.com, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/home/user/mim-flask.mim-essay.com/myproject.sock:", host: "mim-flask.mim-essay.com:8080", referrer: "http://mim-flask.mim-essay.com:8080/"
    

    However, I found 2 fixes:

    FIX 1
    I edited /etc/nginx/nginx.conf and set the user to root and it worked fine. But I belive running it as root isn’t a good practice but this implies it’s definitely a messed up permission issue?

    FIX 2

    Setting PrivateTmp=false in /usr/lib/systemd/system/nginx.service also fixes the issue while keeping the user in nginx.conf set to nginx.
    I am not sure if this one is a legit fix or not.