同时配置 nginx 和 tomcat

同时配置 nginx 和 tomcat

我正在尝试弄清楚如何配置 nginx 和 tomcat 以使其正确协同工作。

Nginx 有一个worker connections设置,tomcat 也有max threads(假设 tomcat 有原生 apr 连接器)。由于 nginx 使用 HTTP/1.0 连接到后端,因此 tomcat 不需要 keepalive。

keep-alive timeout在 nginx 中设置为 30s。如果目标是 100 req/s,并且每个请求在 1 秒内完成,则可以有 100 个请求 * 每个请求 30 秒 = 3000 个并发连接可以打开到 nginx,并且将有 100 个并发连接到 tomcat。

因此,如果我worker connections在 nginx 中将其设置为 6000(工作进程为 1,我认为 nginx 每个请求消耗 2 个连接。一个用于客户端,一个用于后端),并max threads在 tomcat 中将其设置为 100(默认情况下已经是 200),这将起作用。

这个计算是否存在概念上的问题?确切的数字并不重要。

谢谢。

答案1

在进行上述计算时,您应该考虑两点:

  • 连接和线程之间是有区别的。这稍微分解一下,但每个请求都是一个线程。每个连接会有很多请求。
  • RAM 是另一个监控因素。每个线程占用多少内存以及您的机器上有多少内存可能是限制因素。

除此之外,它看上去还不错。

答案2

将请求从 nginx 转发到 tomcat 时请记住:

您需要设置协议 http/1.1 并将连接设置为“”以启用连接持久性

问候 vj

相关内容