记录Nginx+Gateway在谷粒商城项目中配置使用,实现Nginx的动静分离、请求转发和Gateway API网关负载均衡处理请求
Nginx实现动静分离
背景交代:
1、谷粒商城项目商城页面全部使用服务器端模板引擎thymeleaf渲染;因此必然导致各个微服务存在大量的静态资源
2、Nginx使用Docker进行的部署;明确这点对location块中配置的root属性至关重要
下图是项目早期的一个简单部署绘制,本小节只关心图中的红线部分是如何实现的
确认Nginx容器内部的静态资源挂载点
# 使用该命令可以看到容器的所有挂载点
# ’nginx‘是容器名称;容器ID也是可以的
docker inspect nginx
上传静态资源
根据上图可知静态资源即将要存储的位置,/app/nginx/html
配置Nginx实现静态资源请求响应
首先明确一下Nginx的配置文件之间的联系;并在挂载点的/app/nginx/conf/conf.d
创建gulimall.conf(复制default.conf)
在gulimall.conf中配置静态资源路径
请求一个静态资源测试,如下图
Nginx+API网关+Docker容器的请求链路
本小节记录Nginx接受的请求(非静态资源)是如何转发给API网关,最后到具体的Application
- 82.157.43.31上部署的Nginx监听gulimall.com下的所有请求
- Nginx将非静态资源的请求打给106.52.95.70上的API网关gateway
- gateway根据路径规则将请求转发给具体的应用
这样整个请求链路就通了,最后看一眼效果