Nginx 如何强制浏览器禁用或刷新重定向缓存?

Nginx 如何强制浏览器禁用或刷新重定向缓存?

我们有以下安全站点。如果用户打开http://name.tld,他应该被重定向到https://name.tld。我们最初弄乱了安全站点中域的顺序,因此http://name.tld被重定向到https://sub.name.tld而不是http://name.tld

我们更改了服务器名称的顺序,但所有浏览器都缓存了该重定向。如果我手动禁用 Chrome 中的缓存,它就可以正常工作。但其他浏览器也需要这样做。

我们如何强制所有浏览器清除重定向缓存(首选)或禁用告诉它们不缓存重定向?我们可以发送标头吗?

这是我们的网站:

server {
       listen         80;
       server_name    name.tld sub.name.tld localhost sub.localhost;
       return         301 https://$server_name$request_uri;
}

server {
    listen              443 ssl;
    server_name         name.tld sub.name.tld localhost sub.localhost;
    ssl_certificate     /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    # required for large JSON files
    client_max_body_size 50m;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html/name.tld;
        index  index.html index.htm;
    }

    location /api {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://our-api:5000/api;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

编辑: 重定向的实际相关问题是 CORS。对 API 的请求失败,因为请求来自不同的域。

答案1

针对我们的情况,我们的解决方案是启用 CORS(参见上面的编辑)以接收来自 的请求https://sub.name.tld。受影响的人至少有一个正常工作的网站,网址为https://sub.name.tld

相关内容