nginx可以对websocket连接做透明压缩吗?

Posted

技术标签:

【中文标题】nginx可以对websocket连接做透明压缩吗?【英文标题】:Can nginx do transparent compression of websocket connections? 【发布时间】:2019-08-10 20:18:45 【问题描述】:

我让 nginx 充当 ASP.net / Kestrel 后端服务器的反向代理。

我希望 nginx 为我的 Websocket 连接进行 gzip 压缩(即 permessage-deflate / rfc7692),但我找不到任何配置选项。

nginx 能做到吗?有没有插件可以让它工作?如果没有,还有什么我可以使用的吗?

【问题讨论】:

【参考方案1】:

只需编辑您的 nginx 配置。静态站点、代理或 websocket 也是如此

gunzip on; // be sure to include this. This enables runtime decompression for clients that do not accept gzip
gzip on; //enables gzip for request
gzip_proxied any; //enables compression on proxies
gzip_types *; //compress everything there is

如果这不起作用,请在通过套接字发送之前尝试压缩消息。 你可以在这里阅读更多信息:https://docs.nginx.com/nginx/admin-guide/web-server/compression/

【讨论】:

以上是关于nginx可以对websocket连接做透明压缩吗?的主要内容,如果未能解决你的问题,请参考以下文章

我应该使用nginx作为WAMP的代理吗?

一个客户端可以开两个websocket连接吗?

用nginx代理netty实现的websocket做负载均衡,最大连接数取决于谁

nginx 可以用作后端 websocket 服务器的反向代理吗?

nginx 可以用作后端 websocket 服务器的反向代理吗?

微信小程序 WebSocket 使用非 443 端口连接