整体流程是这样
1.首先我们将本机的ip地址和域名进行一个映射 192.168.153.1 (虚拟机ip地址)。
192.168.153.1 gulimall.com
2 客户端发送gulimall.com请求时,在本地找到了对应的ip地址,就不需要DNS解析了。
3客户端发送请求给虚拟机,虚拟机中有ngnix监听虚拟机的80端口,设置server_name是gulimall.com
4.nginx把请求转发给网关
Nginx把请求转发给网关的时候,会丢失Host等信息,所以在转发的时候一定要带上,
gulimall对应nginx.cong中的upstream,192.168.153.1:88 就是网关的地址
5.网关再把请求转发给对应的服务
最后最后还要注意的就是,在网关中配置路由的时候,配置gulimall.com_route路由的时候,一定要放在最后边!!
如果要放在前边你的话,假设我们的请求是这样http://gulimall.com/api/product/attr/base/listforspu/6
在路由匹配中,第一个就会匹配到他,所以他会直接被匹配到商品服务,api字段就不会被截断,路径就变成了**
http://gulimall-product/api/product/attr/base/listforspu/6**,这样肯定是不行的。
放在后边的话,api字段就会被下边这个路径规则截断,路径就变成了http://gulimall-product/product/attr/base/listforspu/6
这样的话就可以正常访问了
先截断,在路由