在 Nginx 中配置强制 HTTPS 的 URL 的最佳方法是什么?

在 Nginx 中配置强制 HTTPS 的 URL 的最佳方法是什么?

有没有办法配置 Nginx 逐行读取文件来确定何时应强制实施 HTTPS,而不是将所有 URL 放入条件检查中?或者有没有办法将两者结合起来?两个值得关注的领域是组织和长期管理这些 URL 的能力。我们正在考虑将其移至应用程序层,但 Nginx 似乎可以更快地评估这一点。目前我们只是使用正则表达式。

答案1

map $uri $example_com_preferred_proto {
    default "http";
    ~^/sign-up/ "https";
    ~^/account/ "https";
}

server {
    listen 80;
    server_name example.com;

    if ($example_com_preferred_proto = "https") {
        return 301 https://example.com$request_uri;
    }

    # root /var/www/example.com/html;
    # other stuff
    # ...
    # location / {
    #     ...
    # }

}

相关内容