Nginxでファイルアップロードサイズを制限する方法


前回の記事では、Apacheでのユーザーファイルのアップロードサイズの制限について説明しました。この記事では、 Nginx でユーザーファイルのアップロードサイズを制限する方法について説明します。ファイルのアップロードサイズを制限することは、ある種のサービス拒否(DOS)攻撃やその他多くの関連問題を防ぐのに役立ちます。

デフォルトでは、ファイルのアップロード時の Nginx の上限は 1MB です。ファイルのアップロードサイズを設定するには、Nginxの ngx_http_core_module モジュールの一部である client_max_body_size ディレクティブを使用できます。このディレクティブは、 http サーバー、または場所のコンテキストで設定できます。

Content-Length 」リクエストヘッダーフィールドで指定された、クライアントリクエストボディの最大許容サイズを設定します。 /etc/nginx/nginx.conf ファイルの上限を 100MB に増やす例を示します。

すべてのサーバーブロックに影響する httpブロックに設定します(仮想ホスト)。

http {
    ...
    client_max_body_size 100M;
}    

特定のサイト/アプリに影響する[サーバーブロック]に設定します。

server {
    ...
    client_max_body_size 100M;
}

サイト/アプリの下の特定のディレクトリに影響する(アップロードする) location block に設定します。

location /uploads {
    ...
    client_max_body_size 100M;
} 

次のコマンドを使用してファイルを保存し、Nginx Webサーバーを再起動して最近の変更を適用します。

# systemctl restart nginx       #systemd
# service nginx restart         #sysvinit

変更を保存してHTTPサーバーを再起動した後、リクエストのサイズが設定された値の 100MB を超えると、 413(Request Entity Too Large)エラーが返されますクライアントに。

また、Nginx Webサーバー管理に関連した以下の記事もお読みください。

  1. How to Change Nginx Port in Linux
  2. How to Hide Nginx Server Version in Linux
  3. ngxtop – Monitor Nginx Log Files in Real Time in Linux
  4. How to Monitor Nginx Performance Using Netdata
  5. How to Enable NGINX Status Page

参照:ngx_http_core_moduleのドキュメント

それで全部です!この短い記事では、Nginxでユーザーファイルのアップロードサイズを制限する方法を説明しました。あなたは以下のコメントフォームを通して私達とあなたの考えを共有することができます。