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