当前位置: 代码网 > 服务器>网络>https > Nginx通过代理服务器访问目标接口的实现

Nginx通过代理服务器访问目标接口的实现

2024年08月06日 https 我要评论
需求:某nginx需要通过一个http代理服务来访问目标url。如果下图所示:服务器b仅提供一个代理出来,不允许在该服务器上安装和进行任何其他配置操作。在这种需求场景下,网络请求过程和域名解析的工作流

需求:某nginx需要通过一个http代理服务来访问目标url。

如果下图所示:

在这里插入图片描述

服务器b仅提供一个代理出来,不允许在该服务器上安装和进行任何其他配置操作。

在这种需求场景下,网络请求过程和域名解析的工作流程大致如下:

1、客户端发送请求到nginx服务器。
2、nginx服务器根据配置,将请求转发给代理服务器(例如:222.10.20.5:7890)。
3、代理服务器接收到请求后,负责解析目标域名(如:https://www.google.com/js/th/yjcnj0mfj9hickqt39lqvpzzkp0g8dlyh-abayrldfs.js)到具体的ip地址。
4、代理服务器进一步将请求转发到解析后的实际ip地址,即最终的目标服务器。
5、最终服务器处理请求并返回响应给代理服务器,代理服务器再将响应返回给nginx,最后nginx将响应返回给客户端。

nginx 配置文件的代码示例片段如下:

location /js/th/ {
    proxy_pass http://222.10.20.5:7890; #这里配置代理服务, http还是https具体要取决于代理服务
    proxy_set_header host www.google.com; #这里配置目标url的host
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
    proxy_set_header upgrade $http_upgrade;
    proxy_set_header connection "upgrade";
    proxy_ssl_server_name on; #如果目标是https站点,需要开启此配置
}

假设我们的 nginx 服务的地址是 http://192.168.10.222:8080,此时我们访问 http://192.168.10.222:8080/js/th/yjcnj0mfj9hickqt39lqvpzzkp0g8dlyh-abayrldfs.js 即可看到实际地址 https://www.google.com/js/th/yjcnj0mfj9hickqt39lqvpzzkp0g8dlyh-abayrldfs.js 的返回结果,则验证通过。

到此这篇关于nginx通过代理服务器访问目标接口的实现的文章就介绍到这了,更多相关nginx代理服务器访问目标接口内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com