nginx配置http转发https请求(http接口转发或者代理https接口)

1.需求场景

nginx中代理http的接口一搜一大把,但是利用nginx代理https开头的接口却是很少,大部分都是一些重定向操作,实际使用不了,经过很多次尝试终于解决,可以将https的接口代理到http中为前端提供服务;

2.nginx配置

2.1.代码

shell 复制代码
    server {
        listen       0.0.0.0:8080;
        server_name  localhost;
        # ...
       
        # 前端
        location / {
            root   /xxx/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        # 后端
        location /prod-api/ {
            proxy_pass http://127.0.0.1:8081/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        # 第三方https接口请求
        # 请求http://localhost:8080/3rd/api
        # 等于https://www.3rd.com/api
        location /3rd/ {
            proxy_pass https://www.3rd.com/;
            proxy_ssl_verify off;
            proxy_set_header Host www.3rd.com;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            proxy_redirect https://www.3rd.com/ /;
        }
        # ...
}

2.2.配置说明

配置项 解释
www.3rd.com 只是个示例域名,实际情况根据自己的需求改动
location /3rd/ 这表示该配置块将应用于以 /3rd/开头的所有请求
proxy_pass https://www.3rd.com/ 这告诉Nginx将匹配的请求代理到 https://www.3rd.com/
proxy_ssl_verify off 表示Nginx在代理请求到上游服务器时不会验证SSL证书
proxy_set_header Host jiutian.10086.cn 设置代理请求的 Host 头信息为 www.3rd.com
proxy_set_header X-Real-IP $remote_addr 设置代理请求的 X-Real-IP 头信息为客户端的IP地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for 设置代理请求的 X-Forwarded-For 头信息
proxy_set_header X-Forwarded-Proto $scheme 设置代理请求的 X-Forwarded-Proto 头信息为原始请求的协议(http 或 https)
proxy_redirect https://www.3rd.com/ / 修改上游服务器返回的 Location 头信,当上游服务器返回一个重定向响应时(例如301或302),proxy_redirect 会将 Location 头中的原始URL(https://www.3rd.com/)替换为相对路径(/)。这意味着如果上游服务器返回一个指向 https://www.3rd.com/somepath 的重定向,客户端实际上将被重定向到 /jiutian/somepath 而不是上游服务器的路径
相关推荐
LCG元9 小时前
STM32实战:基于STM32F103的4G模块(EC20)HTTP通信
stm32·嵌入式硬件·http
饺子不吃醋12 小时前
深入理解HTTP:请求/响应、缓存机制、登录态与跨域
http
Arya_aa14 小时前
检疫登记模块图片上传,nginx自动映射地址
spring boot·nginx
全栈工程师修炼指南15 小时前
Nginx | 磁盘IO层面性能优化秘诀:error 日志内存环形缓冲区及小文件 sendfile 零拷贝技术
运维·网络·nginx·性能优化
ywgcsxue15 小时前
在麒麟V10上源码编译安装Nginx
linux·运维·服务器·nginx
Cyber4K19 小时前
【Nginx专项】基础入门篇-访问限制及访问控制
linux·运维·服务器·nginx
KevinCyao20 小时前
彩信http接口如何接入?采用POST方式提交多媒体附件的彩信示例
网络·网络协议·http
Arya_aa20 小时前
通过nginx访问文件资源
nginx
johnrui21 小时前
WebFlux 与普通HTTP(Spring MVC)详细对比
spring·http·mvc
2501_915921432 天前
苹果iOS应用开发上架与推广完整教程
android·ios·小程序·https·uni-app·iphone·webview