ngnix 配置 https 前端 请求 http接口的后端 用rewrite
时间: 2024-09-13 07:05:22 浏览: 42
nginx配置https之后,https请求被调转到http问题
5星 · 资源好评率100%
在 Nginx 中配置 HTTPS 环境下访问 HTTP 后端接口通常是为了实现前端HTTPS请求到HTTP后端的透明转发。通过使用 `rewrite` 指令,你可以将所有来自 HTTPS 的请求路径映射到对应的 HTTP 地址。下面是一个基本的 Nginx 配置示例:
```nginx
server {
listen 443 ssl; # Listen for HTTPS traffic on port 443
server_name yourdomain.com;
# SSL certificate configuration goes here
location / { # This block handles all requests to the frontend
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_pass http://yourbackendaddress; # The backend's non-SSL address
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^(.*)$ http://$host$1 permanent; # Redirect to HTTP with a permanent status code
}
}
```
在这个例子中:
- `listen 443 ssl` 配置了服务器监听443端口并启用SSL。
- `try_files` 和 `@proxy` 结合用于处理前端请求,如果找到文件则返回,找不到则转到代理部分。
- `location @proxy` 区块设置了一个代理,将请求发送到指定的HTTP地址(`http://yourbackendaddress`)。
- `rewrite` 指令将所有的HTTPS请求重写为HTTP,并附带原始的URI,以便保持原始请求的路径。
阅读全文