Apache错误 – 文件名太长:无法映射GET

我在CentOS VPS上安装了PHP Laravel应用程序。 这是我最近更新的移动应用程序的后端。 不幸的是,我写了一些不好的代码,导致请求连接数百甚至数千字。

我的Apache服务器经常closures(至less每小时1),我必须运行:service httpd restart。

正如我在error.log中看到有很多这些条目:

(36)File name too long: Cannot map GET /adminpanel/public/api/v2/categoriese=c3Jr... 

每秒几十个这样的请求和apache都下降了。

我已经发布了app store的更新,但是一些用户仍旧拥有旧版本。 在处理这些请求之前是否有可能阻止这些请求?

Apache为LimitRequestLine指令内置了8190的默认限制,它限制了HTTP GET请求的最大长度。 如上所述,看看是否改变这个参数做你的工作。

对于apache每隔一小时或更长时间停止运行:我会惊讶的发现,这与拒绝太长的GET请求有关。 Apache精心devise,以最小的努力来放弃不规则的请求,正是为了避免拒绝服务和资源耗尽。

从您发布的内容来看,这听起来像是可能与您正在使用的多处理模块(MPM)types,最小/最大分叉进程的关系以及可用的系统资源有关,当然,您的成功请求正在使用的处理能力后端(PHP)。

作为临时的解决方法,您可以将LimitRequestLine参数设置为很长的时间。