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サイトの読み込み速度を劇的に改善できるはずです。