Nginx
正向代理与反向代理的解释:
总结:
代理就是通过代理服务器进行访问
正向代理是浏览器主动通过代理服务器访问
反向代理是被动的,在“不知情”的情况下被转发到了其他端口去访问,常用于服务器的负载均衡。
透明代理
透明意味着代理本身对用户是不可见( invisible )的,也就是说用户侧不需要进行代理设置(区别于前向代理),请求的目标也是真实的服务器(区别于反向代理)。作为中间人,透明代理会拦截用户的请求,其常见的应用场景有:
缓存请求的结果。透明代理缓存服务器的回应,这样之后重复请求到达时,直接回复给用户就好了,不用再将请求扔给服务器,这一点有没有让你想到 CDN ?
过滤请求。也就是一些公司常常使用的行为管理功能,禁止掉员工对 QQ、weixin、炒股等网站的请求
跨域
没有反向代理的情况:
假设你有一个前端应用托管在
https://myapp.com
,它需要访问后端APIhttps://api.myserver.com
。直接从
https://myapp.com
发出对https://api.myserver.com
的请求会构成跨域请求,因为协议和域名不同(或域名和/或端口不同)。
使用反向代理的情况:
在
https://myapp.com
域下配置反向代理服务器,将所有对/api
的请求转发到https://api.myserver.com
。当前端应用想要调用API时,它会发送请求到
https://myapp.com/api
。尽管这些请求实际上是由反向代理转发给https://api.myserver.com
的,但从前端应用的视角来看,所有请求都是发送到它自己的源https://myapp.com
。因此,浏览器认为这些请求都是同源的,不会触发跨域资源共享(CORS)的限制。
Q:为什么服务端不会拒绝来自代理服务器的请求呢?
浏览器信任了代理服务器
Last updated