如何透過 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的狀態。
先感謝每一個提示