请教能否让 nginx 的反向代理调用外部正向代理
- 0次
- 2021-05-18 16:34:43
- idczone
最近被安排协助解决同事项目的一个很棘手的问题,业务场景简化描述如下
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 的方案,或者是其他的解决方案。。。
修改 A 系统的 hosts 将 C 域名指向 B 的 IP 呢
h_t_t_ps://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to-be-used-by-the-jvm
都没域名的,全都是 ip 。。
感谢,这个方案可以解决这个问题,正好他们服务是 weblogic 的,我中午也抽空用 netty 的 sample 代码改了个方向代理调正向代理的服务出来,双管齐下了
验证通过了,很稳,是个内网的产品走代理访问互联网服务的。
你的标题起的 nginx 方案,要不是误点进来,根本不会看正文。。
大佬,又遇到个新问题,他这个应用是个大杂烩,有多种 http 请求的写法,挂上 jvm 代理之后,有的走,有的不走,我自己调试了下,用 apache 的 httpclient 写的代码和 netty 好像都是不走这个代理的,这种还有救吗
查了下,只能改代码,最终方案是用 netty 撸了个反向代理再走正向代理的服务挂上去搞定了。