nginx 如何在80 端口下,代理一个https 的接口
时间: 2024-02-19 16:03:20 浏览: 182
要在 Nginx 的 80 端口下代理一个 HTTPS 接口,需要进行如下配置:
1. 在 Nginx 配置文件中,设置 HTTPS 代理服务器的地址和端口号,例如:
```nginx
upstream https_server {
server 127.0.0.1:443;
}
```
2. 配置 Nginx 的 80 端口代理,例如:
```nginx
server {
listen 80;
server_name example.com;
location / {
# 重定向到 HTTPS 接口
rewrite ^ https://$server_name$request_uri? permanent;
}
}
# HTTPS 配置
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass https://https_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
```
在以上配置中,首先通过 `upstream` 块设置了 HTTPS 代理服务器的地址和端口号,然后在 80 端口的 server 块中,通过 `rewrite` 将所有请求重定向到 HTTPS 接口。
在 HTTPS 配置的 server 块中,设置了 SSL 证书和私钥,然后通过 `proxy_pass` 将请求代理到 HTTPS 代理服务器上。在代理过程中,使用 `proxy_set_header` 设置了一些代理请求头,例如 Host、X-Real-IP 和 X-Forwarded-For。
以上配置可以根据实际情况进行调整。
阅读全文