nginx正向代理和反向代理的浅层理解
最近在做nginx反向代理,由于好奇也看了正向理解的一些博客,大多都是以如下两种模式进行介绍:
- 正向代理:vpn,由于本机网络受限想要访问目标服务器,需通过配置一个中间服务器来访问目标服务器。
- 反向代理:外网用户访问内网,需访问一个中间服务器来映射或转发到内网服务器上。
其实一开始看到这些也没什么特别的,认为这就是两种思路,但看到两种代理方式不同的配置时,那这两种方式从逻辑上有什么区别?不管是正向还是反向,代理都是为了源服务器发出请求到目标服务器,然而他们两者之间网络受限不互通,所以需要一个中间服务器来代理,这个中间服务器和两者都是联通的。这么一想似乎两者没有区别,甚至用任何一种用两种方式都可以实现互通,但既然这两种方式已经约定成俗,它总归是有意义的。
关键点在于网上的举例似乎已经形成定式:正向代理=vpn,反向代理=外网访问内网,本来是一般到特殊的举例方便理解,但如果反过来把特殊当成一般就容易走入误区,所以我认为这两者的区别不在于哪个内网、哪个外网。
- 正向代理的目的不只是目标服务器,它可以说是为了无目的地想要访问他本访问不到的内容,等于源服务器将它的ip地址换成了中间服务器的ip地址。所以我们用vpn的时候并不是只能访问哪个固定的服务或者服务器,正向代理了ip,可以让源服务器换到中间服务器的立场上进行网络访问,源服务器是自由的。
- 反向代理的目的可以说是十分明确的,我就是把你源服务器本来访问不到的资源,开放一些我想让你能访问到的,也就是说目标服务器以反向代理的方式让源服务器访问到,源服务器不是自由的,它所能访问的路径早就被设定好了,以一种固定的连接方式。这也就是说为什么反向代理常用于服务器系统搭建,不管设置再多的转发映射还是做负载均衡,都是设定好的模式,用户仅能通过地址访问到开放的系统。
以上是我对于nginx代理的浅层理解,如有不对,感谢指导!