【发布时间】:2013-03-03 23:15:27
【问题描述】:
我用 Nginx 使用反向代理,我想强制请求进入 HTTPS,所以如果用户想用 http 访问 url,他会自动重定向到 HTTPS。
我也在使用非标准端口。
这是我的 nginx 反向代理配置:
server {
listen 8001 ssl;
ssl_certificate /home/xxx/server.crt;
ssl_certificate_key /home/xxx/server.key;
location / {
proxy_pass https://localhost:8000;
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto https;
}
}
我尝试了很多方法,也阅读了有关它的帖子,包括 this serverfault question,但到目前为止没有任何效果。
【问题讨论】:
-
重开审稿人:这个问题肯定和编程有关,而且非常具体。只是之前没有提到“非标准端口”,这可能使它之前有点模糊。
-
这是完全错误的,这被关闭为题外话。 nginx是编程中常用的工具,评分最高的解决方案给出了解决问题的正确代码:
error_page 497 https://$host:$server_port$request_uri;
标签: ssl proxy nginx reverse-proxy