Nginxinxpringclouuu项目部署 Gateway 其他服务
2025-06-24 12:15:54
来源:新华网
一. 部署 Nginx。:
- Nginx 是高性能的 Web 服务器和反向代理服务器。它通常用于将流量从公共互联网引导到内部应用程序服务器。
- 您可以在服务器上安装它 Nginx,并根据您的需要进行配置。通常的配置包括监控端口、定义服务器块、配置反向代理、设置 SSL/TLS 等。
- 配置完成后你可以启动 Nginx,并确保其能够正常处理流量。
- 了解其在整个项目中的作用:反向代理、负载平衡和静态资源部署,本章也使用。
我这边把它分成四步:。
第一步:。
创建目录。
mkdir -p /data/nginx/logs/mkdir -p /data/nginx/conf/mkdir -p /data/nginx/html/。
第二步:。
编写配置文件的方法有很多,比如手搓、复制后修改等等。
# 负载均衡的定义 upstreamupstream backend_service1 { server backend1.example.com; server backend2.example.com; # 在这里添加更多后端服务器}upstream backend_service2 { server backend3.example.com; server backend4.example.com; # 在这里添加更多后端服务器}server { listen 80; server_name yourdomain.com; # 配置第一个 Spring Cloud 微服务 location /service1//service1// { proxy_pass http://backend_service1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 配置第二个 Spring Cloud 微服务 location /service2// { proxy_pass http://backend_service2; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 其他配置项 # 其他的可以添加到这里 Nginx 配置,比如 SSL 证书、日志等}。
第三步:。
第三步:。
安装nginx并启动docker拉取镜像(当然,如果有特殊要求,也可以解压使用自己的)。
cd /data/lanxum/nginxdocker pull nginx #默认拉最新的docker create --restart always --network=host --name nginx -v $PWD/html:/usr/share/nginx/html -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/var/log/nginx nginxdocker start nginx。二. 部署 Gateway。
二. 部署 Gateway。
: yaml配置:。
您可以根据实际需要调整这些配置并将其保存为。
application.yml。
文件,用于配置 Spring Cloud Gateway。确保在项目的依赖中添加 Spring Cloud Gateway 相关依赖,这样这些配置才能生效。启动gateway:。 。 。 。
直接java的方法有很多,直接java -jar也可以启动(前提是你配置了java环境)或者把jar包打成images再做成容器等。这里使用shell脚本(原理也是java) -jar)。
。
- 以上省略了注册中心的部署,第二期从注册中心开始!!!。
- 本期先到这里,有兴趣可以参考第二期!!!。
- Gateway 是一个 API 网关,来自客户端的管理和转发 API 请求相应的后端服务。
您可以选择使用不同的产品 API 网关,如 Kong、Apigee、AWS API Gateway 等,根据您的需要进行配置和部署。
配置 Gateway 包括定义 API、设置路由、认证和授权、监控和日志等。
spring: cloud: gateway: routes: - id: service1-route uri: http://service1 predicates: - Path=/service1//** - Header=X-Service-ID, service1 filters: - StripPrefix=1 - id: service2-route uri: http://service2 predicates: - Path=/service2//** - Header=X-Service-ID, service2 filters: - StripPrefix=1 - id: service3-route uri: http:///service3 predicates: - Path=/service3//** - Header=X-Service-ID, service3 filters: - StripPrefix=1 - id: service4-route uri: http:///service4 predicates: - Path=/service4/** - Header=X-Service-ID, service4 filters: - StripPrefix=1 - id: service5-route uri: http:///service5 predicates: - Path=/service5/** - Header=X-Service-ID, service5 filters: - StripPrefix=1 # 全局过滤器用于处理跨域要求 default-filters: - name: DedupeResponseHeader args: name: Access-Control-Allow-Origin strategy: RETAIN_FIRST - name: AddResponseHeader args: name: Access-Control-Allow-Origin value: "*" - name: AddResponseHeader args: name: Access-Control-Allow-Methods value: "GET, POST, PUT, DELETE, OPTIONS" - name: AddResponseHeader args: name: Access-Control-Allow-Headers value: "Content-Type, Authorization" - name: AddResponseHeader args: name: Access-Control-Max-Age value: "3600" - name: AddResponseHeader args: name: Access-Control-Allow-Credentials value: "true"server: port: 8080。
以上是一个 Gateway 的 YAML 配置文件示例,包括五项服务和依据 ID 转发到负载均衡和跨域处理的不同服务。以上是一个 Gateway 的 YAML 配置文件示例,包括五项服务和依据 ID 转发到负载均衡和跨域处理的不同服务。
解释yaml:
Routes。:
routes。定义了五条路由,每个路由对应一个服务 (。
service1。- 到。
service5。
)。每条路有两条路 predicates:
Path。和。
Header。。
Path。匹配要求路径,
Header。 用于匹配请求头。
X-Service-ID。,将请求转发给相应的服务。
filters。中的。
StripPrefix=1。用于去除请求路径中的第一个路段(例如,将。
/service1//path。
转换为。/path。
)。
Global Filters。:
default-filters。定义了一些全球过滤器,用于处理跨境请求(CORS)。
DedupeResponseHeader。用于删除重复。
Access-Control-Allow-Origin。
响应头。AddResponseHeader。
用于添加 CORS 相关响应头,包括允许的来源、方法、头部和凭证。
Server Port。