请教能否让 nginx 的反向代理调用外部正向代理

2020-08-19 11:02:51 +08:00
 torment5524
最近被安排协助解决同事项目的一个很棘手的问题,业务场景简化描述如下
1 、A 系统需要通过正向代理 B 才能调用 C 系统;
3 、对 B 和 C 没有管理权限,目前只能远程操作 A 服务器,A 是 java 开发,接口是 http 接口,A 自身没有代理功能,可以修改配置文件修改目标地址,但是不能动他们的代码;
目前测试了几种方案都失败了
1 、通过设置全局的 http_proxy,失败,java 默认不走这个;
2 、通过 A 系统本机装的 nginx 反代,但是 nginx 也不走全局代理;

目前只有两个选择
1 、额外开发一个反代服务,实现反代二次调用正向代理访问;
2 、能否让 nginx 的反向代理调用正向代理?

因为 ABC 都不是我们这边的,给他做一个服务,后续会进坑,所以想问问有没有 nginx 的方案,或者是其他的解决方案。。。
2171 次点击
所在节点    NGINX
8 条回复
wangritian
2020-08-19 13:48:19 +08:00
修改 A 系统的 hosts 将 C 域名指向 B 的 IP 呢
fengjianxinghun
2020-08-19 14:01:42 +08:00
torment5524
2020-08-19 15:18:53 +08:00
@wangritian 都没域名的,全都是 ip 。。
torment5524
2020-08-19 15:21:48 +08:00
@fengjianxinghun 感谢,这个方案可以解决这个问题,正好他们服务是 weblogic 的,我中午也抽空用 netty 的 sample 代码改了个方向代理调正向代理的服务出来,双管齐下了
torment5524
2020-08-19 19:06:39 +08:00
@fengjianxinghun 验证通过了,很稳,是个内网的产品走代理访问互联网服务的。
fengjianxinghun
2020-08-20 09:50:42 +08:00
@torment5524 你的标题起的 nginx 方案,要不是误点进来,根本不会看正文。。
torment5524
2020-08-27 09:01:10 +08:00
@fengjianxinghun 大佬,又遇到个新问题,他这个应用是个大杂烩,有多种 http 请求的写法,挂上 jvm 代理之后,有的走,有的不走,我自己调试了下,用 apache 的 httpclient 写的代码和 netty 好像都是不走这个代理的,这种还有救吗
torment5524
2020-08-27 18:26:37 +08:00
@fengjianxinghun 查了下,只能改代码,最终方案是用 netty 撸了个反向代理再走正向代理的服务挂上去搞定了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699547

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX