Nginx域名访问、动静分离、网关转发
# 前言
# 正向代理:
比如你现在缺钱,想找马云爸爸去借钱,可想而知人家可能鸟都不鸟你,到最后碰一鼻子灰借不到钱。不过你认识你家隔壁老王,而老王认识马云同志,而且关系还很好。这时候你托老王去找马云借钱,当然这事最后成了,你从马云那里借到了500万!这时候马云并不知道钱是你借的,只知道这钱是老王借的。最后由老王把钱转交给你。在这里,老王就充当了一个重要的角色:代理。
此时的代理,就是我们常说的正向代理。代理客户端去请求服务器,隐藏了真实客户端,服务器并不知道真实的客户端是谁。正向代理应用最广泛的莫过于现在的某些“科学上网工具”,你访问不了谷歌、Facebook的时候,你可以在国外搭建一台代理服务器,代理你访问,代理服务器再把请求到的数据转交给你,你就可以看到内容了。
# 反向代理:
如你现在很无聊,想找人聊天,这时候你拨通了联通客服10010电话,联通的总机可能随机给你分配一个闲置的客服给你接通。这时候你如愿以偿的和客服聊了起来,问了问她目前有没有结婚、有没有对象、家住哪里、她的微信号、她的手机号。。。
此时联通总机充当的角色就是反向代理,你只知道和客服接通并聊了起来,具体为什么会接通这个客服MM,怎么接通的,你并不知道。
反向代理隐藏了真正的服务端,就像你每天使用百度的时候,只知道敲打www.baidu.com就可以打开百度搜索页面,但背后成千上万台百度服务器具体是哪一台为我们服务的,我们并不知道。我们只知道这个代理服务器,它会把我们的请求转发到真实为我们服务的那台服务器那里去。
综上所述:正向代理代理对象是客户端,反向代理代理对象是服务端。
# nginx反向代理配合网关转发
项目上线后,我们需要将项目部署到服务器中,并且购买域名与服务器的公网ip地址进行绑定。我们开发环境中可以通过修改host文件,以本地域名结合nginx反向代理的方式来访问我们的项目。最终让nginx帮我们进行反向代理,所有来自域名的请求,都转到网关服务。网关通过配置文件或者代码的方式设定相关规则,负载均衡去匹配其他微服务。
# 动静分离
# 静:
图片、js、css等静态资源(以实际文件存在的方式)
# 动:
服务器需要处理的请求
以下是微服务动静分离的案例
- 每一个微服务都可以独立部署、运行、升级、独立自治;