使用X-Accel保护Nchan的WebSocket频道

时间:2019-07-18 01:02:27

标签: nginx nginx-location nginx-reverse-proxy nchan

我正在尝试使用文档中的approach隐藏/保护我们的WebSocket通道。
接下来是我们的设置:

  1. 带有nchan的Nginx服务器位于push.dev.com
  2. 执行身份验证的上游位于app.dev.com

带有nchan的服务器的nginx.conf的位置部分看起来像这样:

location /push/ws/subscribe {
    proxy_pass https://app.dev.com/api/ws_verify;
    proxy_set_header X-Forwarded-For $remote_addr;
}

location ~ /push/internal/ws/(.*) {
    internal;
    nchan_subscriber                            websocket;
    nchan_channel_id                            $1;
    nchan_websocket_ping_interval               10s;
}

app.dev.com上的处理程序侦听/api/ws_verify,为简单起见,总是返回带有标题的空200响应,如

X-Accel-Redirect: /push/internal/ws/channel1123,
X-Accel-Buffering: no

自然,驻留在app.dev.com上的nginx正在处理此“加速重定向”(而此nginx对/push/internal/ws/(.*)的内部位置一无所知)。

是否可以使用Nginx从另一台服务器启动内部重定向?谢谢。

0 个答案:

没有答案