ホームページ  >  記事  >  バックエンド開発  >  Nginx+PHP の大きなファイルのアップロード設定

Nginx+PHP の大きなファイルのアップロード設定

WBOY
WBOYオリジナル
2016-06-23 13:36:46842ブラウズ

nginx の変更

    send_timeout    60;    fastcgi_connect_timeout 300;    fastcgi_send_timeout 300;    fastcgi_read_timeout 300;    client_max_body_size 30m;     可以全局设置也可以每个网站单独设置

php の変更

    upload_max_filesize    10M    post_max_size  15M     该项应该要大于 upload_max_filesize    max_input_time  300    max_execution_time  300

php-fpm パラメータに注意してください

    request_terminate_timeout  300    request_slowlog_timeout 如果多数为上传大文件则设置较大值,这个根据自身情况设置

これら 2 つのパラメータの設定が小さすぎると、ファイルの一部が転送された後に接続が閉じられます。

最大時間はユーザーの帯域幅に基づいて計算されます。予期しないダウンタイムを避けるために、無制限の時間を 0 に設定することはお勧めできません。

=============================================== == ==========

nginx.conf の keepalive_timeout 時間設定を増やす必要があるという設定投稿をインターネット上で多く見たためです

私のサーバーの設定は次のとおりです:

keepalive_timeout 60;デフォルトでは約 75 秒、私は 60 に設定しました。

実際にテストしたところ、9MB のファイルをアップロードするのに約 270 秒かかりました。

実際のアップロードが成功したことがわかります。 keepalive_timeout 時間には影響されず、この設定は関係ありません

そして、この時間の拡張は nginx の同時実行性に深刻な影響を及ぼします

send_timeout については、長時間オンラインで検索しましたが、タイムアウトが何であるかを理解できませんでした。また、テストしました。

send_timeout を 60 に設定した後、

アップロード 170 秒を超えてもアップロードは成功します。したがって、私が理解しているのは、クライアントがアップロード中にネットワークが切断されてから受信が完了した後、タイムアウトは 60 秒である必要があるということです動作が停止し、接続が切断されます。データを送り続ける限り途切れることはない、たぶんこんな感じです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。