Nginx代理
微服务项目可能需要 Nginx来实现反向代理,用户请求 Nginx,随后 Nginx将请求转发至 Gateway网关,再由网关转至具体的微服务
一、动态代理
1.1 网关配置
针对使用 Gateway作网关的项目,需要配置 Nginx转发请求中对路径的识别方式
可以使用 -Host
来验证 Nginx转发时的请求
spring:
cloud:
gateway:
routes:
# 注意,路由是自上而下顺序匹配的,不是像 IP地址那样最长匹配,所以精确的值要写在前面
- id: gulimall_host_route
uri: lb://gulimall-product
predicates:
- Host=**.gulimall
## 前端项目,/api
1.2 Nginx配置概述
概述
一般会将容器中的 Nginx目录映射出来
我们可在 html
路径下配置访问数据,在 conf
路径下配置访问规则
配置
其中核心文件为 nginx.conf
和 conf.d
目录下的配置文件
查看 nginx.conf
其中配置了一些基本属性
注意:它同时会引入 conf.d
路径下的所有配置文件
查看 conf.d
初始状态下是只有 default.conf
文件
其中配置了基本的路径相关信息,指明了路径映射的方式
1.3 Nginx详细配置
为了让用户能访问当前 Nginx,并向网关做转发,我们进行如下配置
在 conf.d
目录下拷贝 default.conf
,在原基础上做些修改
之所以配置 gateway这个名称是为了使用 nginx做负载均衡,其在根配置文件中的设置如下
二、动静分离
如果后端服务器没有进行前后端分离,那么当用户请求数据时,会同时请求动态数据、页面和 那些静态的 js、css等文件;
对静态文件的请求会限制系统的吞吐量
2.1 微服务改变
微服务无需额外配置,只是需要更改页面中的资源引用路径
假设,我们将资源放到 nginx的 html下的 static/index路径下
则需要将具体资源的前缀路径设置为 /static/index/xxx
,如:/static/index/js/index.js
2.2 Nginx配置
Nginx需要将这些资源开放出去
具体可以在,conf/conf.d
路径下的资源文件中进行配置
如在 gulimall.conf
中进行如下配置: