巧解 Nginx 反向代理

Nginx 由于出色的性能、反向代理,已经在 Web 服务占据重要地位,但说到反向代理,很多人也只是一知半解,只知道它是 Nginx 里面的功能,要是问到具体是做什么用,跟正向代理有何区别就答不上来了。

正向代理 vs 反向代理

nginx-proxy

从这张图我们可以看到,正向代理是代理客户端的,与客户端同属一体,隐藏了真实客户端,典型的例子就是使用 VPN 科学上网。

而反向代理是代理服务端的,与服务端同属一体,隐藏了真实的服务端,这么做的好处是不用让客户端知道服务端这边是哪台机器处理的请求,有效保证了网络安全,而且能够做请求分发进行负载均衡。

其实正反向代理没想象中的那么难理解,Proxy 在两种结构当中做的都是代为收发请求和相应,只是结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。

PS:反向代理并不等于负载均衡,负载均衡只是反向代理的一种应用场景,就像 VPN 翻墙是正向代理的一种应用场景一样。