web-dev-qa-db-ja.com

エンティティが大きすぎるリクエスト

私はこのメッセージを受け取り、

Request Entity Too Large
The requested resource
/index.php
does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit. 

設定しました

php_value post_max_size 50M
php_value upload_max_filesize 50M

.htaccessしかし助けられなかった

これを克服する方法は?

ありがとう

15
Oleksandr IY

私にとってうまくいく唯一のことは、SSLバッファサイズを調整することでした。これを設定するには...

<Directory /my/blah/blah>
...
  # Set this to something big...
  SSLRenegBufferSize 10486000
...
</Directory>

...次に、変更を有効にするためにApacheを再起動します。 (これは次の場所にあります: http://forum.joomla.org/viewtopic.php?p=2085574

9
duskstriker

私のサーバーはApacheです。 mod_securityモジュールは、約171 KBの大きなデータの投稿を防止していました。 mod_security.confで以下の設定を行いました

SecRequestBodyNoFilesLimit 10486000
SecRequestBodyInMemoryLimit 10486000
4
AnkitK

私はこれに苦労していました-サーバーにかなり大きな(MB単位で)画像をアップロードしようとしていたので、最終日かそこらでリクエストエンティティが大きすぎる問題になりました。

私のセットアップは、残りのエンドポイントにアクセスするためにjboss eap(6.4.20)サーバーにリクエストをプロキシするApache(227)です。

2物事は私のために働いた。

  1. 仮想ホストレベルでSSLVerifyClientを必須にします。つまり、すべてのリソースには、提供される有効なクライアント証明書が必要です。/apiを除くすべてのリソースは相互認証保護されるべきではないため、これは私にとって選択肢ではありませんでした。そのため、それは機能しましたが、これは私にとって選択肢ではありませんでした。

  2. グローバルレベルのSSLVerifyClientを削除し、「オプション」のままにしました。 <Location /api>...</Location>でのみ必須オプションを再度有効にしました。トリックは、特定のしきい値に達した後にのみSSLの再ネゴシエーションを発生させることでした。これは、望ましいアップロードファイルサイズになります。

  3. そのため、最終的に次のように特定のLocationMatchで「SSLRenegBufferSize」設定を有効にする必要があることがわかりました。

    <LocationMatch ^/api/v1/path/(.*)/to/(.*)/resource/endpoint$>
    SSLRenegBufferSize 5242880 #allow upto 5MB for files to come through </LocationMatch>

(。*)上記の場合、エンドポイントでのパスパラメーターを表します。お役に立てれば。

0
Sumant Shanbag

PHPのmax_post_uploadおよびmax_file_uploadが設定されており、Apache2.confまたはLimitRequestBodyのModSec設定ファイルに十分高い値が設定されている場合

おそらく.htaccessファイルが機能します。

  1. アップロードphpファイルがあるディレクトリに移動します(ファイルまたはエラーがスローされているページ)。

2。 .htaccessの作成または編集

3。 LimitRequestBody 20971520を含む行を編集または作成します。

  1. .htaccessを保存します。許可を設定します。 (644およびApache所有者)

  2. Apacheを再起動する可能性があります。

多田。うまくいけば修正されました。

この設定は、このフォルダのみにその制限を設定します-これは、大規模なパケット/ロードDOS攻撃にさらされるphpおよびApacheのグローバル設定を回避する1つの方法です。

LimitRequestBody 0は無制限のアップロードを提供します。

0
Shane