如何限制 AJP

如何限制 AJP

视窗我通过 AJP 将 Apache2 连接到 Tomcat7。

是否有任何配置可以限制通信?

这是我的workers.properties

worker.list=node1
worker.node1.port=8009
worker.node1.host=127.0.0.1
worker.node1.type=ajp13

这是我的httpd.conf:

<VirtualHost 127.0.0.1:80>
  JkMount /* node1
</VirtualHost>

我们需要在企业 ajax 应用程序中测试上传进度条和异步请求。


mod_bw 确实不是与 JkMount 合作。

答案1

据我所知,AJP 在 Apache 和 Tomcat 端都不会进行限制,而是尝试尽可能快地在各层之间传递请求。

以下是一些想法:

可以为工作者设置连接限制,当达到限制时,工作者将不再接受更多连接,从而避免饱和和过载。

可以引入更多的后端主机并在它们之间平衡工作人员,以增加容量。

例如,可以使用自定义过滤器来限制 Tomcat 中的带宽,这是一种编码解决方案。

可以使用 http 连接器代替 AJP,以便使用压缩选项,并可能增加相同连接的吞吐量。

可以引入网络级带宽控制来“从外部”限制 AJP 连接吞吐量。在 Linux 中,可以使用 iptables 本地完成此操作- 限制--限制突发指令。据我所知,Windows 缺乏原生网络级带宽限制解决方案。幸运的是,有第三方插件可以提供精细的带宽控制,例如网络限制器网络平衡器

从操作系统之外来看,人们可以通过限制器设备(例如硬件负载平衡器)运行连接,但为什么还要使用 AJP 呢?

但至关重要的是,无论您以何种方式进行限制,您都需要看到 Apache 和 Tomcat 都有能力让它们的请求队列/积压增长,因为可以想象,如果请求的执行速度较慢,会话数量就会增加。

最后,IIS 具有本机带宽限制功能,并且可以通过 ARR 模块将反向代理/URL 重写到后端 Tomcat。我不确定 ARR:ed 连接是否可以使用限制功能,但如果您使用的是 Windows,则可能值得一看。

相关内容