所以我有一个 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 的端口?
答案 0 :(得分:1)
这听起来可能很愚蠢,但您所知道的是 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。