将网络套接字请求从 Nginx 传递到 uWSGI 服务器

Passing web socket requests from Nginx to uWSGI server

我在服务器 a(端口 8000)上安装了 Nginx 运行,在服务器 b(端口 8001)上安装了 uWSGI 运行。 b 已经在 ws://b:8001/s 提供网络套接字。我想将 a 配置为反向代理,同时允许在 ws://a:8000/s.

访问此网络套接字

我对 a 将原始 HTTP 请求中继到 bb 启动协议升级(如在没有代理的情况下也会发生),而不是在 a 启动协议升级时发生,就像在 this 示例中发生的那样。

什么 Nginx location 块允许我这样做?

事实证明这足够直截了当。以下 location 块显然可以解决问题(对于 Nginx 1.10.3 和 uWSGI 2.0.17.1):

location /s {
  proxy_pass http://b:8001/s;
  proxy_http_version 1.1;
}