当前位置: 首页 > news >正文

nginx 和gateway配置实现动静分离和反向代理

这两个配置文件分别是Nginx和Spring Cloud Gateway的配置文件,它们用于构建网关服务,进行请求的路由和转发。

前端发送请求的时候为了不暴露服务器地址,所以会使用nginx做反向代理的一个主要作用是隐藏后端服务器的真实地址,从而增加网络安全性和隐私。当客户端发送请求到反向代理服务器时,客户端不知道真正处理请求的后端服务器的地址和细节,而只与反向代理服务器通信

Nginx配置文件:使用nginx做微服务的静态资源服务器,如果服务很多,都写在一个http模块下,就会显得很臃肿,这样采用include引入的形式

#user  nobody;
worker_processes  1;events {worker_connections  1024;
}
##文件加载 http模块中有许多的server 一个server表示一个虚拟主机
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;# 引入自定义配置文件include leadnews.conf/*.conf;
}

引入的网关服务配置·文件

//app 网关集群
upstream app-gateway {server localhost:51601;
}server {listen 8801;location / {root html/app-web/;index index.html;}一般前端发送请求,都会在真正的api前面统一加一个前缀,方便nginx正则匹配location ~/app/(.*) {proxy_pass http://app-gateway/$1;proxy_set_header HOST $host;proxy_pass_request_body on;proxy_pass_request_headers on;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

解读:

  • upstream heima-app-gateway: 定义一个名为 heima-app-gateway 的upstream块,指定了一个后端服务器 localhost:51601。

  • server: 定义一个HTTP服务器块,监听在端口8801上。

  • location /: 针对根路径的请求,在html/app-web/目录下寻找静态文件,如果找到则返回。这通常用于服务静态资源文件。

  • location ~/app/(.*): 使用正则表达式匹配以 /app/ 开头的路径,并将这个部分捕获为$1。然后通过proxy_pass指令将请求转发到http://app-gateway/$1,实现了反向代理。

Spring Cloud Gateway配置文件:

spring:cloud:gateway:globalcors:add-to-simple-url-handler-mapping: true corsConfigurations:'[/**]':allowedHeaders: "*" allowedOrigins: "*" allowedMethods:- GET- POST- DELETE- PUT- OPTIONroutes:- id: useruri: lb://leadnews-user predicates:- Path=/user/**filters:- StripPrefix=1 - id: articleuri: lb://leadnews-articlepredicates:- Path=/article/**filters:- StripPrefix=1
  • spring.cloud.gateway.globalcors: 全局CORS配置,允许所有来源 (allowedOrigins: “"),所有请求头 (allowedHeaders: "”),以及指定的HTTP请求方法。

  • spring.cloud.gateway.routes: 定义了路由规则。

  • id: 路由的唯一标识符,在整个微服务的唯一服务标识。

  • uri: 指定了路由的目标地址。lb://leadnews-user 和 lb://leadnews-article 是服务的名称,lb 表示使用负载均衡器。

  • predicates: 定义了匹配条件,例如Path=/user/**表示匹配以 /user/ 开头的请求。

  • filters: 定义了过滤器,例如StripPrefix=1表示去掉请求路径中的一个前缀。过滤调用为了匹配nginx反向代理的统一前缀,这样才能知道转发到哪个服务

综合起来,Nginx用于反向代理静态文件和某些请求,而Spring Cloud Gateway用于动态路由和过滤请求。Nginx主要负责静态资源的服务,而Spring Cloud Gateway则负责动态的路由和请求过滤,将请求转发到相应的后端服务。这样的设计使得系统具有更好的灵活性和可维护性。

http://www.lryc.cn/news/214679.html

相关文章:

  • 【深度学习实验】网络优化与正则化(二):基于自适应学习率的优化算法详解:Adagrad、Adadelta、RMSprop
  • 系统韧性研究(3)| 工程系统韧性要求
  • .net 5 发布后swagger页面不显示问题
  • Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
  • 1985-2020年我国30m土地利用覆盖数据介绍
  • Django 社区志愿者管理系统
  • wordpress如何修改数据库里用户ID下一个自增值的开始数字
  • 利用chatgpt大语言模型来做数据预处理
  • 【机器学习】五、贝叶斯分类
  • k8s 资源管理方式
  • Golang Gin 接口返回 Excel 文件
  • 实战之巧用header头
  • [AUTOSAR][诊断管理][ECU][$36] 数据传输
  • sw 怎么装新版本
  • 正点原子嵌入式linux驱动开发——Linux 音频驱动
  • conda相关的命令操作
  • 如何快速使用Vue3在electron项目开发chrome Devtools插件
  • 干洗店服务预约小程序有什么作用
  • 【跟小嘉学 Rust 编程】三十四、Rust的Web开发框架之一: Actix-Web的进阶
  • 软件安装(1)——Xshell安装
  • Kafka基本原理、生产问题总结及性能优化实践 | 京东云技术团队
  • java8利用Stream方法求两个List对象的交集、差集与并集(即:anyMatch和allMatch和noneMatch的区别详解)
  • Centos7下生成https自签名证书
  • 从中序和后序遍历序列构造二叉树
  • Apache ActiveMQ (版本 < 5.18.3) (CNVD-2023-69477)RCE修复方案/缓解方案
  • 61. 旋转链表、Leetcode的Python实现
  • 基于tpshop开发多商户源码支持手机端+商家+门店 +分销+淘宝数据导入+APP+可视化编辑
  • ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
  • HTML简单实现v-if与v-for与v-model
  • 【学习笔记】[PA2021] Fiolki 2