我在aws EC2实例上使用apache2设置了一个负载均衡器。我的vhosts配置看起来像这样
Listen 4433
<VirtualHost *:4433>
ServerName v1app.xxx.tech
ServerAlias www.v1app.xxx.tech
ServerAdmin magistrate@v1app.xxx.tech
SSLEngine on
SSLCertificateFile /srv/certs/cert.pem
SSLCertificateKeyFile /srv/certs/privkey.pem
SSLCertificateChainFile /srv/certs/chain.pem
ProxyRequests Off
ProxyVia Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Proxy "balancer://mycluster">
BalancerMember "http://10.0.0.252:4433"
BalancerMember "http://10.0.1.243:4433"
BalancerMember "http://10.0.1.179:4433"
BalancerMember "http://10.0.2.252:4433"
ProxySet lbmethod=byrequests
</Proxy>
ProxyPass "/" "balancer://mycluster/"
ProxyPassReverse "/" "balancer://mycluster"
</VirtualHost>
我们的设备要求使用不正确的标头格式下载文件。设备发出的http请求如下所示
GET https://xxx:4433/firmware_update HTTP/1.0
authorization: smoker CCB8A85813F0
当我检查我的apache负载均衡器上的error.log时,我发现它无法解析标题并在第一个标题行&#34;之前遇到&#34;行折叠。但是,格式错误的请求仍然可以与我们的cherryPy服务器很好地协作,而服务器之间没有负载均衡器。 当我在授权标头之前删除额外的8个空格时,请求运行良好,我可以在设备上下载该文件。
现在,它显然是设备代码的问题,但我们已经制造了数百个设备,并且无法更改设备上的代码。
我们是否可以修改apache负载均衡器配置或禁用/启用apache模块以使其在标头解析方面不那么严格。或者是否有任何其他服务器/负载均衡器应用程序将能够处理上述格式错误的标头。或者是否可以使用CherryPy设置负载均衡器?