NGINX の Sendfile ディレクティブは、効率的なデータ処理、サーバー負荷の軽減、スケーラブルな構成のサポートにより、サーバーのパフォーマンスを大幅に向上させる強力な機能です。このディレクティブを利用することで、NGINX はユーザー スペースをバイパスし、CPU 使用率を最小限に抑えながら、ファイルシステムからネットワーク ソケットにデータを直接転送できます。これにより、ファイル配信が高速化され、全体的なパフォーマンスが向上するため、トラフィック量の多い Web サイトやアプリケーションに不可欠な最適化となります。
次のガイドでは、Linux または Unix 系システムでコマンドライン インターフェイス (CLI) コマンドを使用して、NGINX の Sendfile ディレクティブを有効にする方法を説明します。これらの手順に従うことで、サーバーがデータをより効率的に処理し、負荷を軽減し、パフォーマンスの要求に合わせて効果的に拡張できるようになります。
Nginx で Sendfile ディレクティブを有効にする
Sendfile のカーネルサポートの確認
Nginx Sendfile ディレクティブを実装する前に、システムのカーネルが sendfile システム コールをサポートしているかどうかを確認することが重要です。この機能は一般的に利用可能ですが、検証することをお勧めします。
次のコマンドを実行して、sendfile のサポートを確認します。
grep SENDFILE /boot/config-$(uname -r)
肯定的な確認は次のようになります。
CONFIG_SENDFILE=y
NGINXでSendfileを有効化する
Sendfile機能を有効にするには、NGINX設定ファイルにアクセスします。このファイルは通常、次の場所にあります。 /etc/nginx/nginx.conf
.
この目的には、Nano や Vim などのコマンドライン テキスト エディターを使用します。
sudo nano /etc/nginx/nginx.conf
このファイルの HTTP ブロック内で、sendfile ディレクティブを探します。存在しない場合は、次の行を追加します。
http {
sendfile on;
...
}
もし sendfile
オフ(sendfile off;)に設定されている場合、次のように変更します。 on
または、行がない場合は、その行を追加します。
ファイルを変更したら、変更内容を保存してエディターを終了します。
変更を適用するために NGINX を再起動する
設定後、NGINX 設定にエラーがないか検証することが重要です。次のコマンドを使用して設定をテストします。
sudo nginx -t
予想される出力は、検証が成功したことを確認する必要があります。
nginx: configuration file /etc/nginx/nginx.conf test is successful
変更を適用するには、NGINX サーバーを再起動します。システムに応じて、次のいずれかのコマンドを使用します。
sudo systemctl restart nginx
または
sudo service nginx restart
結論
これで、Sendfile ディレクティブを使用して NGINX サーバーを最適化するガイドは終了です。システムの Sendfile サポートを確認する方法、NGINX 構成で Sendfile を有効にする方法、サーバーの再起動で適切に機能することを確認する方法について説明しました。この調整を実装すると、静的ファイルの処理におけるサーバーの効率が大幅に向上します。最後の推奨事項として、これらの変更後にサーバーのパフォーマンスを定期的に監視してください。小さな調整でも、大幅な改善につながる可能性があります。