1.正常访问资源

浏览器输入:localhost:10001/或者localhost:10001/index.html

 可以访问资源

2.修改域名映射

 修改C:\Windows\System32\drivers\etc\hosts文件,加上

 这时候浏览器输入gulimall.com:10001/也可以访问

3.通过nginx进行反向代理(nginx装在了虚拟机上)

首先将上一步的域名映射改为

 浏览器输入gulimall.com它就会访问192.168.71.153:80,默认端口号为80

现在我们想要输入gulimall可以访问到我们刚输入的商品服务(localhost:10001/)

nginx配置:

 重启nginx,浏览器输入gulimall.com访问商品服务页面

192.168.71.1这个地址是你的电脑和虚拟机中间的ip地址,大家可以cmd查看

输入ipconfig: 

然后输入gulimall.com,发现访问不到,发现nginx中配置写错了将/改为:

最终是这样的:proxy_pass http://192.168.71.1:10001/

成功访问:

4.nginx配合网关 

为什么要配合网关,如果我们的商品服务不只一台,而是10台,这样我们服务一改,nginx也需要改,当然也可以实现

如果我们使用了网关,nginx只需要配置网关,网关也可以实现负载均衡功能,由他转发给服务

当然我们的网关服务也可以是多台,我们可以使用upstream

nginx文件配置:

 

重启nginx服务

网关配置:

 前端商品服务路由

 当我们访问gulimall.com会携带host

 配置host路由

访问gulimall.com,发现访问不到,什么原因???我们等会解决这个问题,

我们访问商品服务的资源gulimall.com/api/product/category/list/tree,发现可以访问

 

说明网关配置的路由是没有问题的

真正的原因是:

当我们访问gulimall.com的时候,会携带Host:gulimall.com,首先会到达nginx服务,然后nginx会转交给网关,就在这个时候host丢失了(还会丢失很多参数),导致路由不到了

解决办法:配置nginx文件

 重启nginx,最终访问gulimall.com,访问成功 

注意: 配置host路由一定要放在配置文件的最下面

当然以上是我的服务,大家可以整合到自己的服务也是一样的

希望对你有帮助,有问题私信一起交流!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐