当默认重定向到https时,Nginx允许单个资源使用http

时间:2017-10-30 15:16:37

标签: nginx

我将我的Nginx配置为重定向到https的所有http请求

server {
    server_name url.net;
    listen 80 ;
    access_log /var/log/nginx/access.log vhost;
    return 301 https://$host$request_uri;
}
server {
    server_name url.net;
    listen 443 ssl http2 ;
    ....
}

url.net/file.xml有一个特定资源,我希望在没有任何重定向的情况下允许纯HTTP获取请求。

如何在nginx中配置?

1 个答案:

答案 0 :(得分:0)

return语句放入location块,然后为URI异常添加完全匹配location块。有关详细信息,请参阅this document

例如:

server {
    server_name url.net;
    listen 80 ;
    access_log /var/log/nginx/access.log vhost;

    location / {
        return 301 https://$host$request_uri;
    }
    location = /file.xml {
        root /path/to/directory;
    }
}

请注意,如果您的安全网站上有HTTP Strict Transport Security标题,则会有效。