解决Nginx与uWSGI通信问题:connect() failed(111: Connection...
发布网友
发布时间:2024-10-28 10:44
我来回答
共1个回答
热心网友
时间:2024-10-28 16:48
问题起点:出现502服务器错误
Nginx错误日志如下:日志路径:/var/log/nginx/error.log
[error] 9195#9195: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: www.xxxx.com, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:9000", host: "127.0.0.1:8081"
问题的关键在于uWSGI服务器没能正常开启导致上述问题暴露
以下是技术支持与处理方案:
1、前提技术支持:
Nginx配置详解 - 张龙豪 - 博客园
大江狗:uWSGI的安装及配置详解
老街:Nginx和uWSGI服务器之间是如何通信的
2、执行步骤:
1、根据前提技术进行Nginx配置
2、根据前提技术进行uWSGI配置
3、启动uWSGI服务器
4、启动Nginx服务器
3、验证服务器开启情况:
1、安装Nginx后,如果可以访问?代表Nginx服务器能正常开启
2、执行下图红线的命令,有输出相似内容,代表uWSGI服务正常开启
总结:根据上述相关技术与操作流程可解决Nginx与uWSGI通信问题
1、首先掌握浏览器请求、Nginx、uWSGI、服务端应用程序四者的运作流程,以及它们在运作过程中充当的角色与作用。
客户端浏览器,负责发起请求
Nginx是服务器,负责接收收请求
uWSGI是服务器,根据WSGI通信协议,负责uWSGI服务器和服务端应用程序通信,规定了怎么把请求转发给应用程序和返回
服务端应用程序,负责处理请求并返回
整个通信过程:客户端发送一个http请求,被Nginx服务器接收,Nginx服务器将请求转发给uWSGI,uwsgi将请求转发给实现uwsgi协议的应用程序(flask,gunicorn等等)
2、各服务器的基本配置及各服务器之间是通过什么协议进行连接和通信的?
重要的是三种协议:TCP socket、unix socket、http