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.confconf.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中进行如下配置: