Nginx は、異なる Docker イメージ内の同じサイト構成で異なる動作をします。

Nginx は、異なる Docker イメージ内の同じサイト構成で異なる動作をします。
nginx site config
    server {
    listen 80;
    server_name _;
    server_tokens off;
    gzip_static on;

    location ~* \.(html)$ {
        add_header 'X-XSS-Protection' '1';
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

docker イメージnode:14.19.3( nginx/1.14.2) では完璧に動作しますが、node:14-alpine( nginx/1.22.1) では動作が異なります。

  • アクセスしようとするとindex.html(または/)デフォルトにリダイレクトされます/var/lib/nginx/index.html(「Nginx へようこそ!」と表示されます)。ただし、/usr/share/nginx/html/index.html存在し、権限があればすべて正常です。
  • コピー/usr/share/nginx/html/index.html先が/usr/share/nginx/html/index.txt - 開かれる ( http://<<mydomain>/index.txt)
  • /usr/share/nginx/html/index.htmlにコピーした場合/usr/share/nginx/html/i.html - 404 - 見つかりません ( http://<<mydomain>/i.html、つまり、 では見つからないだけです/var/lib/nginx/i.html)
  • locationサイト設定から上部のブロックを削除すると、すべてが完璧に動作します(余分な応答ヘッダーがなくなるだけです)

関連情報