更新后的 Apache 错误:客户端发送的 HTTP/1.1 请求没有主机名
Posted
技术标签:
【中文标题】更新后的 Apache 错误:客户端发送的 HTTP/1.1 请求没有主机名【英文标题】:Apache Error After Update: client sent HTTP/1.1 request without hostname 【发布时间】:2018-02-02 15:34:19 【问题描述】:我刚刚更新了运行 Apache 2.2.15 的 CentOS 6.9 虚拟机。突然间,Apache 太“挑剔”了,无法响应浏览器。任何浏览器。错误日志读取:
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23):
等等
除了更新系统之外,我没有做任何更改,因为地球上的每一位安全专家都告诉我们要确保我们始终拥有最新的安全补丁。一些研究显示该消息意味着客户端没有发送“主机”标头。好吧,如果这是原因,那么它已经被忽视了很长一段时间。
为了确认问题实际上是由更新引起的,我将其回滚。所以现在它像以前一样工作,即正确。或者,如果不是 100%“正确”,它至少可以工作。
仅供参考,如果有人因为类似问题阅读本文,您可以回滚更新(假设您使用“yum update”更新系统):
# yum history
历史记录以相反的顺序列出,最近的在前,ID 编号在最左侧的列中。回滚如下:
# yum undo ID
我的工作版本(回滚更新后)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Mar 22 2017 06:52:55
我的不工作版本(更新时)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Aug 15 2017 19:44:58
是的,所以在 3 月到 8 月之间,显然“主机名”标题成为强制性的。
好吧,也许“更新”碰巧“修复”了某些东西,但说“修复”碰巧破坏了其他一切。或者至少,它使一个相当好的系统完全无法运行。
所以我对 *** 的好人有两个问题。
首先,我做错了什么?我该如何解决它才能做到正确?我确实想要最新的修复程序,但如果它破坏了其他所有内容,我就不想要了。
其次,我是否可以让一些安全专家承认,每次有补丁可用时更新系统可能不是总是一个好主意?
【问题讨论】:
【参考方案1】:yum 更新时我遇到了同样的问题。您的域中是否有下划线?我不知道为什么,但这似乎产生了同样的错误
client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23):
我也不得不降级,但注意到没有下划线的 URL 可以正常工作。 高温
【讨论】:
Dave DeCarlo,事实上,是的,域名中有 一个下划线。它列在我的本地 etc/hosts 文件中,我用它来连接虚拟机。如果这是核心问题,那就是 8 月更新中引入的一个新错误。但是,我不愿意进行进一步的测试,看看这是否真的是核心问题。现在一切正常,我喜欢这样。 @UncaAlby,有趣,仅供参考,当我将下划线更改为连字符时一切正常。我意识到这并不总是一个理想的解决方案。 下划线不是 DNS 规范中的有效字符,因此它可能是一个修复而不是错误。 ://以上是关于更新后的 Apache 错误:客户端发送的 HTTP/1.1 请求没有主机名的主要内容,如果未能解决你的问题,请参考以下文章
Mac OS sierra 更新后 Apache 出现 404 错误