Nginxで静的ファイルを配信する:最適化のヒント
画像、CSS、JavaScriptなどの静的アセットをNginxで効率的に配信し、ページ読み込みを高速化するためのベストプラクティスを紹介します。
Nginxは、静的ファイルの配信において非常に高速で効率的なWebサーバーとして知られています。しかし、設定を最適化することで、さらにパフォーマンスを向上させることが可能です。
1. Sendfileの有効化
sendfileを有効にすると、カーネル空間でファイルの転送が行われるため、CPU負荷を軽減し、パフォーマンスが向上します。
http {
sendfile on;
}
2. TCP_NOPUSHとTCP_NODELAY
sendfileと組み合わせて使用することで、パケットの送信効率を最適化します。
http {
tcp_nopush on;
tcp_nodelay on;
}
3. ブラウザキャッシュの設定
expiresヘッダーを設定することで、ブラウザが静的ファイルをキャッシュし、サーバーへのリクエスト数を減らすことができます。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
4. Gzip圧縮の有効化
テキストベースのファイル(HTML, CSS, JSなど)を圧縮することで、転送量を大幅に削減できます。
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
これらの設定を適用することで、Webサイトの読み込み速度を劇的に改善できるはずです。