在视窗我通过 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,则可能值得一看。