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

Posted

技术标签:

【中文标题】将 Web 套接字请求从 Nginx 传递到 uWSGI 服务器【英文标题】:Passing web socket requests from Nginx to uWSGI server 【发布时间】:2018-11-26 16:19:24 【问题描述】:

我有 nginx 在服务器 a(端口 8000)上运行,uWSGI 在服务器 b(端口 8001)上运行。 b 已经在 ws://b:8001/s 提供了一个 Web 套接字。我想将a 配置为反向代理,也可以在ws://a:8000/s 访问此网络套接字。

我对 a 将原始 HTTP 请求中继到 bb 启动协议升级感兴趣(如果我理解正确并且这是正确的方法)(如果没有代理),而不是在 a 启动协议升级,就像在 this 示例中发生的那样。

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于将 Web 套接字请求从 Nginx 传递到 uWSGI 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 从特定路径为另一个域的 Django(uWSGI 套接字)提供服务

通过套接字连接将 https 代理请求传递到命名管道(node.js)

如何使用 uWS 访问 HTTP 请求的 IP 地址?

Java Web开发:在传递请求对象时将控制从一个servlet转移到另一个[重复]

Nginx 最全操作——nginx反向代理(5)

如何在将请求传递给上游服务器之前删除 Nginx 中的客户端标头?