如何通过 nginx 和 apache 建立 websocket 连接,其中两者都充当反向代理。
该系统在主机上安装了 apache,并在容器中安装了 tornado web 应用程序。
我的apache配置如下:
<LocationMatch /container_path/(?<app>(.+))/ws >
ProxyPass "ws://container_ip/app_name/%{env:MATCH_APP}/ws"
ProxyPassReverseCookiePath "/" "/container_path/"
</LocationMatch>
我的 nginx 配置类似如下:
upstream backend {
server 127.0.0.1:8888;
}
server {
listen 80;
location ~ /ws$ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
通过此设置,我得到一个400 错误请求来自 tornado 的 WebSocketHandler 的状态。
提前感谢每一个提示