LinuxでNGINXのパフォーマンスを微調整する8つの方法

LinuxでNGINXのパフォーマンスを微調整する8つの方法

NGINX は、人気のある無料のオープンソース Web サーバーです。デフォルトの NGINX 構成は、Web サーバーを機能させるのに十分です。

ただし、NGINX を最大限に活用したい場合は、構成ファイルをいじって、サーバーのパフォーマンスを最適化するパラメーターを設定する必要があります。構成ファイルは、Linux マシンの/etc/nginxディレクトリにあります。

NGINXとは?

NGINX は、メディア ストリーマー、メール サーバー、リバース プロキシ、ロード バランサー、キャッシュ サーバーなどとして使用できる最新の Web サーバーです。

VMware、IBM、Cisco、Apple、Microsoft LinkedIn、Netflix、Facebook、Twitter などの多くの有名企業で使用されている NGINX は、その最高のパフォーマンスで広く知られています。NGINX を使用するもう 1 つの利点は、構成と学習が簡単なことです。

Linux で NGINX のパフォーマンスを調整するための前提条件

NGINX 構成を開始する前に、次の要件を満たす必要があります。

  1. Linux にデプロイおよび構成された NGINX サーバー
  2. NGINX とその構成ファイルの基本的な理解

これらの要件を満たしていれば、NGINX を調整して最適なパフォーマンスを得ることができます。それを行う方法を見てみましょう。

1.NGINXでワーカープロセスを設定する

NGINX アーキテクチャは、1 つのマスター プロセスと複数のワーカー プロセスで構成されます。マスター プロセスの仕事は、構成を評価し、ワーカーを管理することです。一方、ワーカー プロセスの役割は、着信要求を処理し、クライアントとサーバー間の接続を作成することです。

デフォルトでは、プロセス値はautoに設定されています。これにより、使用可能な CPU コアの数と等しいワーカー プロセスの数が設定されます。システムに存在する CPU コアの数を確認するには、次のコマンドを実行します。

grep processor /proc/cpuinfo | wc -l

ワーカー プロセスの数を増やしたい場合は、NGINX 構成ファイルでこれを構成する必要があります。

nano でファイルを開きます。

nano etc/nginx/nginx.conf

より多くのワーカー プロセスを構成するには、既定値をシステムで使用可能な CPU コアの最大数に変更します。

構成された 4 つのプロセッサを示す nginx.configuration ファイル

2.ワーカー接続を構成する

NGINX のパフォーマンスを向上させるために変更できるもう 1 つのパラメーターは、ワーカー接続です。これは、各ワーカー プロセスが同時に処理できる TCP 接続の最大数です。

ほとんどのシステムのデフォルト値は 512 接続ですが、最新のシステムの多くはそれ以上の数もサポートしています。システムがサポートする接続の数を確認できます。

ulimit -n

出力は、サポートされている接続の最大数になります。次に、NGINX 構成ファイルのworker_connections変数を変更して、パフォーマンスを向上させることができます。

3.NGINXでGZIP圧縮を許可する

NGINX は、ファイルの圧縮と解凍に GZIP を使用します。NGINX 構成ファイルで有効にすると、帯域幅を節約し、接続が遅いときに Web サイトの読み込み時間を短縮できます。

GZIP 圧縮を許可するには、NGINX 構成ファイルに次の行を追加します。

server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}

nginx 構成ファイルのコメント付き gzip 構成

4.NGINXでタイムアウト値を制限する

タイムアウト値の削減も、NGINX のパフォーマンス向上に大きな役割を果たします。キープアライブ接続は、接続を開閉する際のプロセッサとネットワークのオーバーヘッドを削減します。

構成ファイルの次のパラメーターを変更して、タイムアウトを制限できます。

http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}

5.バッファサイズを調整する

NGINX バッファーを調整して、サーバーのパフォーマンスを最適化することもできます。バッファ サイズが小さすぎる場合、NGINX は一時ファイルに書き込み、大量の I/O 操作が常に実行される原因となります。

NGINX が最適に機能するには、次のバッファ パラメータを設定する必要があります。

http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}

6. アクセス ログを無効にするか、アクセス ログのバッファリングを有効にします。

ログは大量のディスク容量と CPU/IO サイクルを消費し、すべての要求をログに記録すると、サーバーのパフォーマンスに影響を与える可能性があります。

アクセス ログを無効にすることで、ディスク スペースと CPU 処理を節約できます。アクセス ログを無効にするには、次の行を NGINX 構成ファイルに追加します。

access_log off;

問題のトラブルシューティングに役立つため、ログは重要です。ログを完全に無効にすることはお勧めできません。この場合、アクセス ログのバッファリングを有効にできます。これにより、リクエストごとに異なるログ操作を適用する代わりに、NGINX が一連のログをバッファリングして一度にまとめてログ ファイルに書き込むことができます。

NGINX 構成ファイルに次の行を追加して、アクセス ログのバッファリングを許可します。

access_log /var/log/nginx/access.log main buffer=16k

7. NGINX で静的コンテンツのキャッシュ期間を調整する

ページ間で同じままである Web サイト上のコンテンツは、静的コンテンツと呼ばれます。このコンテンツをキャッシュすると、簡単にアクセスできる場所に配置できます。このメカニズムにより、帯域幅の使用量が削減され、高速アクセスが可能になり、Web サイトのパフォーマンスが向上します。

クライアントが静的コンテンツを要求すると、サーバーはキャッシュされたバージョンのコンテンツを提供します。/etc/nginx/sites-availableディレクトリにある仮想ホスト ファイルに次の行を追加します。

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}

この構成では、最後のブラウザー アクセス時刻から 90 日間ファイルがキャッシュされます。

8.NGINXでOpen File Cacheを有効にする

NGINX 構成ファイルでオープン ファイル キャッシュ パラメーターを使用して、パフォーマンスを向上させることもできます。このディレクティブを使用すると、ファイル記述子と頻繁にアクセスされるファイルをサーバーにキャッシュできます。

構成ファイルのhttpセクションに次の行を追加して、オープン ファイル キャッシュを有効にします。

http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}

構成ファイルを変更して NGINX を最大限に活用する

構成を変更する際に従うべき良い方法は、一度に 1 つの設定を処理してテストすることです。動作する場合は、次の設定に進みます。そうでない場合は、いつでも構成をデフォルト値に戻すことができます。

nginx.confや仮想ホスト ファイルなどの NGINX 構成ファイルで構成されたパラメーターを変更することで、NGINXをハッキングして最高のパフォーマンスを得ることができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です