正向代理:
有一些网站我们无法访问,如国外的网站,或者说某些公司内部的网站,我们输入完整的url无法访问,这时候我们就可以使用正向代理,让可以访问这些url的代理服务器作为正向代理服务器,接收客户端请求,然后通过客户端的请求url去访问服务器,然后接收服务器的返回结果再回推给客户端,流程如下图。
在正向代理中,代理服务器有客户的访问信息,而服务器是不知道的,所以代理服务器可以隐藏客户信息,保护客户信息安全,同时通过正向代理,客户端也可以访问我们原来访问不了的网站,但客户端要知道准确地服务端url。
反向代理:
当服务器不想让别人知道他的服务器地址时,或者服务器集群了很多台服务器,这时候客户如果都要用对应的准确url访问服务器的话太麻烦,或者说服务器希望对访问人数进行限制,安全识别等时。反向代理服务器就把这些服务器的请求全部整合,留给客户一个公用的网站,如公司的首页,淘宝首页等,客户访问时,把这些请求分派给不同的对应的服务器,流程如下图:
在反向代理中,客户并不知道它访问的是哪个代理,所以访问信息都在反向代理服务器中,可以保证服务器内网的安全。同时反向代理服务器可以均衡地分派不同的访问请求给服务器,可以缓解服务器的压力,做到负载均衡。而Nginx就是比较常用的反向代理。
正向代理和反向代理的关系:
正向代理代理的是客户端,反向代理代理的是服务端,一个为客户端服务,一个为服务端服务,在区别上非常明显,如下图:
以上就是我在学习Nginx前对正向代理和反向代理的学习理解,如果有不足的地方欢迎指出。