原因:
通过ps命令查看nginx进程为用户nginx,而uwsgi进程为用户root。估计是权限不一致导致nginx无法访问uwsgi进程(socket方式通信)。
所以修改nginx的配置文件/etc/nginx/nginx.conf,把user选项从nginx改成root。之后执行重启命令
systemctl restart nginx
如果还不行,那就是selinux,执行下面命令:
setsebool -P httpd_can_network_connect 1
然后重新访问浏览器,发现可以打开页面了。如果还不行就彻底一些,关闭selinux:
setenforce 0
root运行uwsgi还是不太好的,建议使用一个和nginx相同的普通账户运行。例如:
uwsgi -s /tmp/uwsgi.sock -w my_app:app --uid www-data --gid www-data