V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Renco
V2EX  ›  程序员

nginx 做请求转发和用 squid tinyproxy 等代理服务器将请求转发到外网有什么不同

  •  
  •   Renco · 2021-12-14 14:05:38 +08:00 · 1784 次点击
    这是一个创建于 1079 天前的主题,其中的信息可能已经有所发展或是发生改变。

    中间服务器(内外网)部署了 nginx 后,内网服务器(java)应用只需要将请求发送到 中间服务器,然后中间服务器转发到外网。

    若中间服务器部署 squid 代理服务器,内网服务器应用( java )的 http 请求需要设置一个代理配置,直接请求 http 即可通过 中间服务器做代理直接访问外网。

    两者在应用的区别是 一个直接请求中间服务器通过中间服务器转发,另一个是直接请求 http 地址,然后通过配置的代理服务器转发。目前来看只有这个区别。不清楚更多实际的应用场景上有啥不同。

    4 条回复    2021-12-14 14:36:36 +08:00
    SleipniR
        1
    SleipniR  
       2021-12-14 14:18:16 +08:00
    nginx 是反向代理,一般作为服务的负载均衡使用; squid/tinyproxy 是正向代理,一般作为访问外网的跳板使用。
    laozhoubuluo
        2
    laozhoubuluo  
       2021-12-14 14:19:07 +08:00
    实际上这里说的 nginx 方式走的是反向代理,squid 方式是正向代理。
    当然实际上这个说法并不准确,nginx 也可以做正向代理,squid 也可以做反向代理。

    两者都是通过代理服务器转发的这个没区别,一般如果业务比较固定(比如就一个两个服务)或者客户端不支持配置代理服务器的时候更偏向反向透明代理,如果有大量的服务一般考虑正向代理(比如代理服务器上互联网)。
    cpstar
        3
    cpstar  
       2021-12-14 14:19:10 +08:00
    感觉你用错了,理解一下啥叫正向代理,啥叫反向代理吧。你这个像是正向代理。

    如果是内网访问外网,中间服务器做三层 IP 转发就够了,不需要上这些应用服务软件。这个情境下,内网虽然叫“服务器”,但其实是客户端,服务器在外网。
    jifengg
        4
    jifengg  
       2021-12-14 14:36:36 +08:00
    你说的应该是 nginx 作为“正向代理”的情况,也就是你的 java 通过 nginx 才能访问资源(而不是被访问),这样的代理方式,和其他提供“正向代理”的软件是没有区别的,包括 clash 和 ssr 也是这种方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:47 · PVG 19:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.