我在NGINX反向代理后面运行基于Jetty的Web服务。 Jetty和NGINX都可以处理响应和请求的gzip压缩/解压缩。典型的有效负载是JSON,范围从几千字节到几十兆字节。特别是对于较大的有效载荷,压缩会显着影响整体吞吐量。
处理压缩部分最有效的点是什么 - JAVA服务(Jetty)或代理(NGINX)如果两者都位于同一台服务器上?
由于NGINX使用基于C的gzip库,它比JAVA的内部gzip更高效,更快,我认为NGINX应该完成这项工作。另一方面,在Jetty和NGINX之间传输更大量的数据有其自身的开销。所以我不确定明显的选择是否正确。
唯一可以确定的方法是衡量。但是,我使用.NET Core和Nginx做了同样的事情,在这种情况下,压缩Nginx中的JSON效率更高。 Microsoft说了很多。
在IIS,Apache或Nginx中使用基于服务器的响应压缩技术。中间件的性能可能与服务器模块的性能不匹配
我认为Java / Jetty和Nginx也是如此。