performance - 我应该在反向代理设置中使用 Jetty 还是 NGINX 的 gzip 功能?

标签 performance nginx jetty gzip reverse-proxy

我在 NGINX 反向代理后面运行基于 Jetty 的 Web 服务。 Jetty 和 NGINX 都可以处理响应和请求的 gzip 压缩/解压缩。典型的有效载荷是 JSON,从几千字节到几十兆字节不等。特别是对于较大的有效载荷,压缩会显着影响整体吞吐量。

如果 JAVA 服务 (Jetty) 或代理 (NGINX) 位于同一台服务器上,那么处理压缩部分最有效的点是什么?

由于 NGINX 使用基于 C 的 gzip 库,它比 JAVA 的内部 gzip 更高效、更快,我认为 NGINX 应该可以完成这项工作。另一方面,在 Jetty 和 NGINX 之间传输大量数据有其自身的开销。所以我不确定明显的选择是否正确。

最佳答案

确定的唯一方法是测量。但是,我对 .NET Core 和 Nginx 做了同样的事情,在这种情况下,在 Nginx 中压缩 JSON 效率更高。 Microsoft说了这么多。

Use server-based response compression technologies in IIS, Apache, or Nginx. The performance of the middleware probably won't match that of the server modules

我认为这同样适用于 Java/Jetty 和 Nginx。

关于performance - 我应该在反向代理设置中使用 Jetty 还是 NGINX 的 gzip 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54905834/

相关文章:

java - java.util.priorityqueue是如何实现的?

android - 样式或性能 : "new ContentValues()" VS "contentValues.clear()"

sql-server - SSIS 包全表加载缓慢

django-debug-toolbar 不会从生产服务器显示

angular - 使用路由和Nginx进行Dockerize Angular

java - JasperReports fillReport太慢且耗资源

linux - 在 Ubuntu 上使用 virtualbox 在 vagrant 上设置 nginx 配置时出错

Apache 多部分 POST "pass request body failed"

jetty - 使用从web.xml配置的defaultservlet,通过jetty 7提供静态内容

java - 将 Jetty 与 RESTEasy 集成