如何解决Nginx 反向代理未重定向到 HTTPS
所以我有一个 Nginx 服务器作为这个配置的反向代理
http {
server {
listen 80;
listen [::]:80;
server_name www.example.tdl;
access_log logs/reverse-access.log;
error_log logs/reverse-error.log;
location / {
proxy_pass https://127.0.0.1:443;
}
}
}
我唯一的问题是,当我连接到 example.tdl 时,它会正确重定向,但不能使用 HTTPS。但它重定向到我的 Apache 服务器的 https 端口,所以我不知道问题出在哪里。 之前没用过nginx,可能是配置错误。
如何让 nginx 重定向到使用 https 的端口?
解决方法
这听起来可能很愚蠢,但您所知道的是 nginx
正在充当您的代理。您通过 HTTP 连接到 nginx
,nginx
通过 HTTPS 将您的请求转发给 apache
,然后获取回复并使用 HTTP 将其传输给您。
您需要让 nginx
使用 listen 443 ssl;
侦听 HTTPS 并为其提供证书 (ssl_certificate <path>;
) 和密钥 (ssl_certificate_key <path>;
)。之后,将以下代码添加到服务器块:
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
这会将所有内容重定向到 HTTPS。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。