今天我们的 Apache 停止了工作,它并没有崩溃,而是停止了响应。
我在 error_log 中看到的唯一错误是:
[Thu Feb 11 10:00:05.245233 2016] [core:error] [pid 7496] [client 169.229.3.91:54481]
AH00126: Invalid URI in request 2p[\x96(\xc0\xf6\xb6w\x89\xf2=\xcd\x8f\xa4i\x9c\xb6\xec<n\v\x11!W\xdc\x9f\x1c\xdd8?\xb4\xe0\xb6,eW\xf0K\xa0H\xd1-\x91\x9f
accesslog 包含相同的
linux-9jgs:/home/USER # cat /var/log/apache2/access_log |grep 169.229.3.91
169.229.3.91 - - [11/Feb/2016:10:00:05 +0100] "2p[\x96(\xc0\xf6\xb6w\x89\xf2=\xcd\x8f\xa4i\x9c\xb6\xec<n\v\x11!W\xdc\x9f\x1c\xdd8?\xb4\xe0\xb6,eW\xf0K\xa0H\xd1-\x91\x9f" 307 264 "-" "-"
linux-9jgs:/home/USER #
有什么想法我们可以如何防止 Apache 下次挂断?
我们正在使用这个版本:
Server version: Apache/2.4.10 (Linux/SUSE)
Server built: 2015-08-11 15:51:30.000000000 +0000
Server's Module Magic Number: 20120211:36
Server loaded: APR 1.5.1, APR-UTIL 1.5.3
Compiled using: APR 1.5.1, APR-UTIL 1.5.3
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
答案1
我会考虑
- 升级到 Apache 网络服务器最新版本(撰写本文时为 2.4.18)
- 检查安全相关设置
- 使用以下模块mod_security
另一个值得尝试的措施是将 MPM 从 prefork 更改为 worker,希望它不太容易受到此问题的影响。