web-dev-qa-db-ja.com

Apacheエラー-ファイル名が長すぎます:GETをマップできません

CentOS VPSにPHP Laravelアプリケーションがインストールされています。最近更新されたモバイルアプリケーションのバックエンドです。残念ながら、結果としていくつかの悪いコードを記述しました。数百、おそらく数千の単語を連結したリクエストを行う場合。

私のApacheサーバーは非常に頻繁にダウンしており(少なくとも1時間に1つ)、: service httpdrestartを実行する必要があります。

Error.logにあるように、これらのエントリはたくさんあります。

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

1秒あたり数十のリクエストとApacheがダウンしています。

アプリストアのアップデートを公開しましたが、一部のユーザーはまだ古いバージョンを使用しています。それらが処理される前にそれらの要求をブロックする可能性はありますか?

4

Apacheには、 LimitRequestLine Directive のデフォルト制限8190が組み込まれています。これは、HTTPGETリクエストの最大長を規制します。前述のように、このパラメーターを変更しても問題が解決するかどうかを確認してください。

Apacheが1時間ごと、またはそれ以上の頻度でダウンすることについて:これが長すぎるGETリクエストの拒否に関連していることに驚かれることでしょう。 Apacheは、サービス拒否やリソースの枯渇を回避するために、最小限の労力で不規則なリクエストをドロップするように注意深く作成されています。

あなたが投稿したものから、これはあなたが使用しているマルチプロセッシングモジュール(MPM)のタイプ、最小/最大フォークプロセスと利用可能なシステムリソースの関係、そしてもちろん、あなたの成功したリクエストが使用している処理能力に関連しているようですバックエンド(PHP)。

1

一時的な回避策として、LimitRequestLineパラメーターを何か長いものに設定できます。

0
Mark R.