中间服务器(内外网)部署了 nginx 后,内网服务器(java)应用只需要将请求发送到 中间服务器,然后中间服务器转发到外网。
若中间服务器部署 squid 代理服务器,内网服务器应用( java )的 http 请求需要设置一个代理配置,直接请求 http 即可通过 中间服务器做代理直接访问外网。
两者在应用的区别是 一个直接请求中间服务器通过中间服务器转发,另一个是直接请求 http 地址,然后通过配置的代理服务器转发。目前来看只有这个区别。不清楚更多实际的应用场景上有啥不同。
1
SleipniR 2021-12-14 14:18:16 +08:00
nginx 是反向代理,一般作为服务的负载均衡使用; squid/tinyproxy 是正向代理,一般作为访问外网的跳板使用。
|
2
laozhoubuluo 2021-12-14 14:19:07 +08:00
实际上这里说的 nginx 方式走的是反向代理,squid 方式是正向代理。
当然实际上这个说法并不准确,nginx 也可以做正向代理,squid 也可以做反向代理。 两者都是通过代理服务器转发的这个没区别,一般如果业务比较固定(比如就一个两个服务)或者客户端不支持配置代理服务器的时候更偏向反向透明代理,如果有大量的服务一般考虑正向代理(比如代理服务器上互联网)。 |
3
cpstar 2021-12-14 14:19:10 +08:00
感觉你用错了,理解一下啥叫正向代理,啥叫反向代理吧。你这个像是正向代理。
如果是内网访问外网,中间服务器做三层 IP 转发就够了,不需要上这些应用服务软件。这个情境下,内网虽然叫“服务器”,但其实是客户端,服务器在外网。 |
4
jifengg 2021-12-14 14:36:36 +08:00
你说的应该是 nginx 作为“正向代理”的情况,也就是你的 java 通过 nginx 才能访问资源(而不是被访问),这样的代理方式,和其他提供“正向代理”的软件是没有区别的,包括 clash 和 ssr 也是这种方式。
|