使用 Nginx 反向代理服务器隐藏客户端请求 header

Hide a client request header with a Nginx reverse proxy server

我有一个 Nginx websocket 反向代理,我想从客户端请求中隐藏一个 HTTP header。

proxy_hide_header 隐藏服务器响应 headers 并且不能用于隐藏客户端请求 headers.

我想这样做是因为 nginx 后面的 websocket 服务器不能很好地与 websocket 扩展一起工作 "permessage-deflate" 所以我想从客户端删除 Sec-WebSocket-Extensions header请求。

您可以将 header 值设置为 void,Nginx 将丢弃它:

proxy_set_header       Sec-WebSocket-Extensions "";

official documentation 解释了删除客户端请求的正确方法header:

If the value of a header field is an empty string then this field will not be passed to a proxied server:

proxy_set_header Accept-Encoding "";

以防万一,这不仅仅是掩盖该值的解决方法;整个 header 将被丢弃。