1、编写nginx.conf总配置文件
![](/i/l/?n=23&i=blog/2506674/202301/2506674-20230130161812125-1868115417.png)
upstream 主要是配置均衡池和调度方法
server后面跟的是我们网关的ip和端口
2、编写位于conf.d文件夹下的gulimall.conf中的server模块
![](/i/l/?n=23&i=blog/2506674/202301/2506674-20230130162043444-2092666507.png)
这样nginx就会找到上游服务器(upstream)中配置的server,然后转发到相应位置
3、编写我们的gateway网关的配置文件
将我们的域名路由到对应微服务
![](/i/l/?n=23&i=blog/2506674/202301/2506674-20230130163056584-429479000.png)
断言中的Host是配置的域名的路由规则
发请求给nginx,nginx代理到网关,然后网关路由到指定微服务
但是这样我们会访问不到我们的首页,因为我们给nginx发请求时带着我们的Host域名
![](/i/l/?n=23&i=blog/2506674/202301/2506674-20230130163343200-205001366.png)
但是nginx进行转发时,丢掉了Host,这样网关的断言规则就匹配不到gulimall.com域名,就出现404访问不到页面的情况
解决nginx代理给网关时丢失Host的问题:
修改我们的nginx配置文件的server模块,进行路径代理时加上Host即可
![](/i/l/?n=23&i=blog/2506674/202301/2506674-20230130163833842-1396950474.png)
这样,之后不管我们访问接口还是页面,都可以使用gulimall.com然后加上对应的请求路径【而不用这样写=》http://localhost:11000/ + 请求路径】,这样如果是/api/***,就转交给对应的服务器。如果是域名满足,就转交给对应的服务。