要解决Apache负载均衡器丢弃HTTP请求正文的问题,您可以尝试使用mod_proxy模块的配置来解决。以下是一个示例配置:
sudo a2enmod proxy
sudo a2enmod proxy_http
编辑Apache的虚拟主机配置文件,通常位于/etc/apache2/sites-available/
目录下的.conf
文件中。找到负载均衡器的配置块。
在负载均衡器的配置块内添加以下行:
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://mycluster/
ProxyPreserveHost On
BalancerMember http://app1.example.com:8080 route=app1
BalancerMember http://app2.example.com:8080 route=app2
# 添加更多的负载均衡器成员
# BalancerMember http://app3.example.com:8080 route=app3
# ...
ProxySet lbmethod=byrequests
这将创建一个名为mycluster
的负载均衡器组,其中包含多个BalancerMember
,每个成员都是一个应用服务器的URL。您可以根据自己的需求添加或删除成员。
sudo service apache2 restart
现在,您的Apache负载均衡器应该能够正确地传递HTTP请求的正文。