这两个配置文件分别是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
- OPTION
routes:
- id: user
uri: lb://leadnews-user
predicates:
- Path=/user/**
filters:
- StripPrefix=1
- id: article
uri: lb://leadnews-article
predicates:
- 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反向代理的统一前缀,这样才能知道转发到哪个服务文章来源:https://www.toymoban.com/news/detail-735368.html
综合起来,Nginx用于反向代理静态文件和某些请求,而Spring Cloud Gateway用于动态路由和过滤请求。Nginx主要负责静态资源的服务,而Spring Cloud Gateway则负责动态的路由和请求过滤,将请求转发到相应的后端服务。这样的设计使得系统具有更好的灵活性和可维护性。文章来源地址https://www.toymoban.com/news/detail-735368.html
到了这里,关于nginx 和gateway配置实现动静分离和反向代理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!