目录
Nginx代理属于反向代理的一种,想要知道什么是Nginx代理,就要先弄清楚什么是反向代理和正向代理。
1.什么是正向代理
简单来说正向代理就是代理服务器帮助客户端去向服务器发送请求。
比如说访问外网,自己(客户端)是访问不了外网的,通过一个特殊网站(代理服务器),可以访问到了外网,这个过程就叫正向代理。
正向代理主要主动设置代理服务器ip或者域名进行访问,由设置的代理服务器ip或者域名去访问目的服务器,目的服务器再返回内容。
正向代理的用途:
(1)突破访问限制
通过正向代理可以去访问外国网站。
(2)提高访问速度
代理服务器一般有一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
(3)隐藏客户端真实IP
真正与服务器打交道的是代理服务器,所以服务器是不知道访问他的到底是谁。这就好比我们通过中介租房子,房东知道有人要租房子,但是具体是谁、长啥样他是不知道的。这就可以隐藏客户端的真实ip。
2.什么是反向代理
简单来说反向代理就是代理服务器代替真实服务器和客户端进行交流。比如去租房子,跟你联系的其实是个二房东,但是你并不知道他是二房东,你以为直接沟通的是房东。那这个时候其实就是反向代理。最常见的反向代理就是Nginx。
在正向代理里面,客户端是知道服务器的真实存在的,而反向代理客户端不知道真实的服务器是谁。
反向代理的用途:
(1)负载均衡
通过反向代理服务器,可以将请求分发到不同的真实服务器上,实现负载均衡。
(2)提高访问速度
反向代理服务器可以缓存静态资源或动态页面,减少后端服务器的负载,提高响应速度。
(3)提供安全保障
反向代理服务器可以通过反向代理实现安全过滤功能,例如防止恶意请求、DDoS 攻击、SQL 注入等,提高系统的安全性。
3.Nginx如何解决跨域
跨域是浏览器的安全策略,要求访问的网站和请求访问的服务的ip地址保持同源策略,即协议、域名、端口保持一致。
Nginx通过反向代理用户去请求服务器的数据。浏览器访问网站,实际访问的是Nginx代理的前端服务,浏览器向后端请求数据时,通过Nginx去代理请求后端服务器,后端把数据返回给Nginx代理服务器,代理服务器再把数据返回给浏览器。所以浏览器访问的前端服务和代理的后端服务都是用一个服务器的相同端口返回出来的,就解决了跨域问题
如果没搞懂反向代理的伙伴可以看看这个大佬写的,本人也是通过这篇文章理解了一二。