自学内容网 自学内容网

聊一聊Nginx中的反向代理

写在最前面

大家好,我是小白不黑,看完本篇文章,你可以了解到

1.什么是反向代理

2.什么是正向代理

3.什么是同源策略

4.Nginx反向代理架构

一:代理是什么

举个例子,小白不黑想要结婚,那么他便要开始筹办婚礼,比如要定酒店,要设计婚礼流程以及其他杂七杂八的东西。对于小白不黑来讲,他只是想要结婚,并不想操心这么多。因此,小白不黑找到了一个婚庆公司,帮他包办了所有一系列杂事。而他,只需要负责到场结婚即可。在这里,婚庆公司的职责则是代理,为小白不黑挡住了前面所有杂七杂八的事情,而小白不黑,则负责与婚庆公司对接即可。

二:正向代理与反向代理

通过上述例子,读者大概可以明白什么叫代理。众所周知,互联网的新名词是层出不穷。代理,通过代理的对象,被分为正向代理与反向代理。所谓正向代理,其实是代理了客户端,此时客户端是明确知道服务端地址的;而反向代理,则是代理了服务端,此时客户端只与反向代理服务器进行交互,而非真实服务器。可看如下架构图。

话说回来,正向代理与反向代理,在我们日常生活中,有用到吗?答案是有的。

当小白不黑,半夜想要偷偷查看一下“墙外的世界”时,便用到了正向代理技术(vpn),将小白不黑的ip代理成其他ip,然后通过该ip去墙外的世界;

当小白不黑,周末回到家还要工作时,便打开了公司的vpn软件,连接上公司的vpn,然后便“愉快”地工作,也是用到了正向代理技术,将小白不黑的ip代理成了公司可访问的ip,然后通过该ip访问公司网络

当小白不黑,打开浏览器,输入网址访问某个网站时,实际上,域名(网址)会被DNS服务器解析,解析完后再转发到目标地址,便用到了反向代理技术

......

.......

三:Nginx反向代理

在这里,小白不黑只讨论Nginx的应用性,而非原理性。想要了解Nginx的使用方法及实现原理的,可以自行百度。

Nginx可以作为一个反向代理服务器。反向代理服务器,就是代理真实的服务器,将真实的服务器隐藏起来。站在真实的服务器前面,挡住客户端请求。前端请求先打到Nginx,Nginx再将请求转发到真实的服务器上。Nginx作为一个反向代理服务器,天然支持负载均衡,路由转发等功能。

除了隐藏真实服务器,提高安全性,Nginx反向代理,还可以解决前后端跨域问题。现在后端服务基本是微服务,一个微服务占用一个端口,如果前端直接访问这些服务,必然会触发同源限制。比如先从A服务请求数据,前端渲染在页面上,然后用户继续在该页面上请求B服务,这种请求是会触发浏览器的同源策略的。但是通过Nginx,Nginx只需要对外暴露一个端口便可以了,Nginx再通过请求地址映射到不同的服务即可。

三:Nginx反向代理

在这里,小白不黑只讨论Nginx的应用性,而非原理性。想要了解Nginx的使用方法及实现原理的,可以自行百度。

Nginx可以作为一个反向代理服务器。反向代理服务器,就是代理真实的服务器,将真实的服务器隐藏起来。站在真实的服务器前面,挡住客户端请求。前端请求先打到Nginx,Nginx再将请求转发到真实的服务器上。Nginx作为一个反向代理服务器,天然支持负载均衡,路由转发等功能。

除了隐藏真实服务器,提高安全性,Nginx反向代理,还可以解决前后端跨域问题。现在后端服务基本是微服务,一个微服务占用一个端口,如果前端直接访问这些服务,必然会触发同源限制。比如先从A服务请求数据,前端渲染在页面上,然后用户继续在该页面上请求B服务,这种请求是会触发浏览器的同源策略的。但是通过Nginx,Nginx只需要对外暴露一个端口便可以了,Nginx再通过请求地址映射到不同的服务即可。

PS:同源策略。在浏览器的同一个页面内,不能访问非同源资源。比如浏览器先请求A源获取数据,然后渲染成Html页面,如果再在该页面请求B源的数据,是不被允许的。其中,同源策略包括协议,域名,端口。

最后,欢迎大家加入技术交流社区,可私聊或看以往博客文章末尾处进群交流。


原文地址:https://blog.csdn.net/m0_57713282/article/details/140587330

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!