GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu 18.04 で NGINX を使用して静的ファイル リクエストをフィルタリングおよび最適化する

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

Linux
  1. Ubuntu 14.04 VPSにHHVM、Nginx、MariaDBを使用してphpMyAdminをインストールする方法

  2. MariaDB、Puma、Nginxを使用してUbuntu14.04サーバーにRedmineをインストールします。

  3. UbuntuにVarnishとNginxを使用してWordPressをインストールする

  1. ubuntuサーバーでnginxとpm2を使用して単純なnodejsアプリをセットアップする方法

  2. Ubuntu18.04でApache静的ファイルキャッシングを最適化する方法

  3. Nginx を使用して Ubuntu 20.04 に phpMyAdmin をインストールする

  1. Ubuntu14.04および16.04へのNginxのインストール

  2. UbuntuとViscosityを使用したOpenVPNサーバーのセットアップ

  3. Ubuntu 22.04 に NVM と Nginx を使用して Node.js をインストールする方法