强制重定向到 nginx 上特定端口的 https?

强制重定向到 nginx 上特定端口的 https?

我的网站在端口 8080 上,我想强制使用 https。例如,如果我输入http://mywebsite.com:8080,它应该重定向到https://mywebsite.com:8080

我如何在 nginx conf 中执行此操作?

答案1

Nginx 将发出非标准错误代码 497可以处理error_page指令。因此这将起作用:

server {
    listen 8080 ssl;

    error_page 497 @force_https;

    location @force_https {
        return 301 'https://$host:$server_port$request_uri';
    }
}

作品:

$ curl -I http://localhost:8080/test/me
HTTP/1.1 301 Moved Permanently
...
Location: https://localhost:8080/test/me

相关内容