我现在有一台Apache服务器和两台Tomcat服务器。它们通过mod_jk模块连接。并且配置了负载平衡。所有请求都将重定向到httpd中的loadbalancer。形态:
JKMount /* controller
控制器是负载平衡器,工作的tomcat服务器是worker1、worker2。
问题是,除了自动负载调度,我还需要一个url匹配重定向。具体来说,对http://www.example.com/test1/index.html的请求应该去工作站1(Tomcat),http://www.example.com/test2/index.html去工作站2。然而,在工作站1和工作站2中,应用程序结构都是webapps/test/结构。
我可以使用mod_jk url映射将/test1/分派到worker1和/test2/分派到worker2,但路径将是/test1/和/test2/而不是/test/。同时,如果我使用apache redirectMatch或url rewrite将/test1/(/test2/)更改为/test/,mod_jk现在不会将url分派给不同的工作程序,因为它们具有相同的路径。
我该如何处理这种情况?
也许一个简单的方法是在tomcat workers上使用URLRewite过滤器。根据documantation的规定,你的URL重写应该遵循以下规则。xml文件:
<rule>
<from>^/test[0-9]*/(.*)$</from>
<to type="redirect">/$1</to>
</rule>
因此,工作人员会忽略test1或test2 URI部分。apache可以按照你计划的方式使用mod_jk。
您需要在Tomcat中将应用程序设置为根应用程序。可以通过添加META-INF/context来实现这一点。使用以下内容将xml添加到应用程序:
<Context path="/"/>
我建议你从webapps目录中删除其他应用。然后你需要改变你的网络应用。xml,因此servlet现在被映射到具有适当上下文的适当url:
<servlet-mapping>
<servlet-name>TestApp</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TestApp</servlet-name>
<url-pattern>/test1</url-pattern>
</servlet-mapping>
第二个JVM中的应用程序需要url模式/test2。对于Apache/Tomcat连接,我使用mod_ajp而不是mod_jk。以下是您在Apache中对mod_ajp的需求:
<Proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8015 route=ajp13_node1
BalancerMember ajp://127.0.0.1:8016 route=ajp13_node2
</Proxy>
<Location "/test">
ProxyPass balancer://cluster/test stickysession=JSESSIONID
</Location>
<Location "/test1">
ProxyPass ajp://127.0.0.1:8015/test1
</Location>
<Location "/test2">
ProxyPass ajp://127.0.0.1:8016/test2
</Location>
这是假设AJP连接器正在监听第一个JVM的8015和第二个JVM的8016。
我正在尝试在tomcat上运行的servlet中使用 ,该servlet从apache服务器接收来自浏览器的请求。因此,任何重定向都将url的'ip.ip.ip'或'someurl.com'部分替换为'localhost:8080'(据我所知,这是因为tomcat将请求源标识为apache服务器地址)。
在花了几个小时阅读Http客户机文档和源代码后,我决定在这里寻求帮助。 我有一个使用循环算法的负载均衡服务器
以下是我的设置: EC2与Apache使用弹性负载均衡器。 我希望所有超文本传输协议流量都自动重定向到https。我找到了这个reco,并通过添加到我的httpd.conf文件中来尝试: 然而,这在我重新启动服务器之前或之后都不起作用。HTTP没有重定向,我的站点抛出了各种错误,直到我从配置中删除了该规则。 我认为我更新文件错误或负载均衡器设置不正确。对于负载均衡器的侦听器,我有LB协议HTTP,
我有一个EC2实例,它托管一个在IIS中运行的网站。我还设置了一个带有HTTPS侦听器的AWS应用程序负载平衡器,并在其中添加了网站的SSL证书(保存在AWS证书管理器中)。HTTPS侦听器将流量重定向到我的目标组,目标组又指向我的EC2实例。EC2实例使用安全组只允许来自负载平衡器的流量。 首先,我是否正确地认为应用程序负载平衡器会解密SSL流量,从而使用HTTP将其转发到我的目标组(换句话说,
我正在努力将负载平衡和故障转移功能添加到我们现有的 Apache tomcat 设置中,mod_jk。为此,我设置了 2 个 Tomcat 实例。我已经做了一些更改,并将粘贴它们。我在httpd或tomcat的日志中没有收到任何错误,并且我只看到一个空白页。我做错了什么? Apache网络服务器配置: workers.properties: apache2.conf/httpd.conf: 站点已
我们正在使用持久连接,并尝试在x时间段后强制断开连接。虽然我认为我们在理论上可以使用连接保持投资策略,但我能说的是,这只适用于回应之后。。i、 e.当连接空闲时。 我们的问题是... 假设有一台客户端,通过负载平衡器访问两台服务器(A、B)。当其中一台服务器脱机(B)时,所有新连接都会在服务器(A)上建立。现在,当另一台服务器(B)重新联机时,它将保持空闲状态,因为所有连接都在另一台服务器(A)上