我的 error.log 中出现了一堆这样的错误:
[客户端 1.2.3.4] 代理:传入请求中没有 HTTP 0.9 请求(没有主机行),并且保护器软管设置强制主机名成为 uri 的 www.mydomain.com /
我的配置基本上是:
ProxyRequests Off
<VirtualHost 1.2.3.4:80>
ServerName www.mydomain.com
DocumentRoot "c:/apache/htdocs"
ProxyPreserveHost On
ProxyPass / http://172.1.1.1/
</VirtualHost>
<VirtualHost 1.2.3.4:443>
ServerName www.mydomain.com
DocumentRoot "c:/apache/htdocs"
# SSL Stuff
ProxyPreserveHost On
ProxyPass / http://172.1.1.1/
</VirtualHost>
有人知道如何消除这些警告吗?
答案1
这些警告只是为了通知您 Apache 做了一些不太正确的事情(Host
在没有标头的请求中注入标头),以确保客户端可以访问代理内容。
由于ProxyPreserveHost On
设置了,Apache 假定后端服务器不会同意使用Host
标头172.1.1.1
,也不知道如何与后端服务器通信 HTTP/0.9。因此,它进行了一些即兴发挥,希望它能够正常工作,但会通知您这一点。
通常,这些都可以忽略,但不幸的是,这会给您的日志增加噪音。此外,这样的请求很少来自人类的 Web 浏览器(例外可能是某些较旧的代理);更有可能是某种机器人。