NGINX は、特に静的ファイルの管理やリバース プロキシとして使用される高性能な Web サーバーですが、その汎用性のおかげで、あらゆる種類の状況で利用できます。
このガイドでは、ウェブサイトのパフォーマンスを向上させ、サーバーの負荷を軽減するために、Gzip 圧縮を有効にしたり、プロセス/接続の数またはバッファのサイズ。
まず、SSH 接続を介してサーバーに接続します。まだ行っていない場合は、ガイドに従って SSH で安全に接続することをお勧めします。ローカル サーバーの場合は、次の手順に進み、サーバーのターミナルを開きます。
構成パラメータの変更
nano や vi などのエディターを使用して、NGINX 構成ファイルを開きます。この例では、nano が使用されました。
$ sudo nano /etc/nginx/nginx.conf
Gzip 圧縮を有効にする
Gzip 圧縮を有効にすると、送信するデータ量を減らすことができます。 CPU のパフォーマンスに影響を与える可能性があるため、Gzip の圧縮レベルを上げすぎないように注意してください。
gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;
プロセス数と接続数の設定
パラメータ「worker_processes」は、NGINX の起動後にインスタンス化されたプロセスの数を示します。プロセスの数は、通常、サーバー上のコアの数と同じにする必要があります。たとえば、サーバーに 4 コアのプロセッサがある場合、次のように値 4 のパラメータを設定する必要があります:
worker_processes 4;
パラメータ worker_connections は、1 つのプロセスによって処理されるクライアントの数を示します。構成に最適な値を設定するには、次のコマンドでコアの制限を確認するだけです:
$ ulimit -n
結果は、プロセスごとの最大接続数になります。次に、設定します:
worker_processes 1024;
バッファのサイズを変更する
バッファのサイズが小さすぎる場合、NGINX は強制的に一時ファイルを作成し、多数のディスク操作が発生します。これを避けるには、バッファのサイズを正しく設定してください。
client_max_body_size:クライアント リクエストの最大サイズを示します
client_body_buffer_size:POST リクエストのバッファ サイズを参照します
client_header_buffer_size:クライアント リクエスト ヘッダーに関連するバッファ サイズを参照します
これらのパラメータを次の値で変更すると、良い結果が得られます:
client_max_body_size 8m;
client_body_buffer_size 10K;
client_header_buffer_size 1k;
キャッシュの期間を変更する
静的ファイル キャッシュの期間を管理するには、次のようにファイル拡張子とその期間を指定するだけです:
location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
365d では、拡張機能のキャッシュが 365 日間続くことが指定されています。
タイムアウトを減らす
client_body_timeout および client_header_timeout パラメータは、それぞれリクエストの本文またはヘッダーの待機時間を示します。サーバーがこの時間内にボディまたはヘッダーを受信しない場合、\ 接続はタイムアウト エラーで終了します。
send_timeout パラメータは、2 つの読み取り操作間の最大時間を示します。この時間を超えると、NGINX はクライアントとの接続を終了します。
代わりに、keepalive_timeout パラメータは、Keep-Alive 接続が終了するまでの最大時間を参照します。
これらの値を次のように設定すると、良い結果が得られます:
client_body_timeout 12;
client_header_timeout 12;
send_timeout 10;
keepalive_timeout 15;
ログの無効化
NGINX は、ログ ファイルで行われたすべてのリクエストを監視します。この機能を無効にするには、access_log パラメータを次のように変更するだけです:
access_log off;
変更の適用
NGINX サービスを再起動して変更を実装します:
$ sudo service nginx restart