相同的站点配置在不同的docker镜像中,Nginx的表现有所不同

相同的站点配置在不同的docker镜像中,Nginx的表现有所不同
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 image 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从站点配置中删除上面的块,一切都会正常(只是没有额外的响应标头)

相关内容