Nginxサーバーブロックの理解:よくある設定の疑問

この記事では、Nginxサーバーブロックの設定に関するよくある質問(構造、locationディレクティブ、静的コンテンツの効率的な配信など)について、新規デプロイ時のポイントを交えて解説します。

Nginxサーバーブロックとは?

Nginxのサーバーブロック(Apacheでいうバーチャルホスト)は、1つのサーバーで複数のドメインやWebサイトをホストするための設定です。

よくある質問

1. サーバーブロックの基本構造は?

通常、/etc/nginx/sites-available/ に設定ファイルを作成し、/etc/nginx/sites-enabled/ にシンボリックリンクを貼るのが一般的です。

server {
    listen 80;
    server_name example.com;
    root /var/www/example;

    location / {
        try_files $uri $uri/ =404;
    }
}

2. locationディレクティブの優先順位は?

Nginxは特定のルールに従ってマッチングを行います。プレフィックスマッチ(^~)や正規表現(~, ~*)の優先順位を理解することが重要です。

3. 静的コンテンツを効率的に配信するには?

expires ヘッダーを設定してブラウザキャッシュを活用しましょう。

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}