NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
torment5524
V2EX  ›  NGINX

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

  •  
  •   torment5524 · Aug 19, 2020 · 2783 views
    This topic created in 2150 days ago, the information mentioned may be changed or developed.
    最近被安排协助解决同事项目的一个很棘手的问题,业务场景简化描述如下
    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 的方案,或者是其他的解决方案。。。
    8 replies    2020-08-27 18:26:37 +08:00
    WaldenHorizon
        1
    WaldenHorizon  
       Aug 19, 2020
    修改 A 系统的 hosts 将 C 域名指向 B 的 IP 呢
    torment5524
        3
    torment5524  
    OP
       Aug 19, 2020
    @wangritian 都没域名的,全都是 ip 。。
    torment5524
        4
    torment5524  
    OP
       Aug 19, 2020
    @fengjianxinghun 感谢,这个方案可以解决这个问题,正好他们服务是 weblogic 的,我中午也抽空用 netty 的 sample 代码改了个方向代理调正向代理的服务出来,双管齐下了
    torment5524
        5
    torment5524  
    OP
       Aug 19, 2020
    @fengjianxinghun 验证通过了,很稳,是个内网的产品走代理访问互联网服务的。
    fengjianxinghun
        6
    fengjianxinghun  
       Aug 20, 2020
    @torment5524 你的标题起的 nginx 方案,要不是误点进来,根本不会看正文。。
    torment5524
        7
    torment5524  
    OP
       Aug 27, 2020
    @fengjianxinghun 大佬,又遇到个新问题,他这个应用是个大杂烩,有多种 http 请求的写法,挂上 jvm 代理之后,有的走,有的不走,我自己调试了下,用 apache 的 httpclient 写的代码和 netty 好像都是不走这个代理的,这种还有救吗
    torment5524
        8
    torment5524  
    OP
       Aug 27, 2020
    @fengjianxinghun 查了下,只能改代码,最终方案是用 netty 撸了个反向代理再走正向代理的服务挂上去搞定了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5715 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 03:36 · PVG 11:36 · LAX 20:36 · JFK 23:36
    ♥ Do have faith in what you're doing.