Nginx 反向代理与负载均衡测试工具

项目简介

这是一个轻量级的 Spring Boot 测试项目,专门用于验证 Nginx 的反向代理、负载均衡和请求转发功能。项目提供 5 个简单的 HTTP 接口,返回请求路径、服务端口和当前时间,方便直观地观察请求分发情况。

项目结构

nginx-test-demo/
├── pom.xml
└── src/main/
    ├── java/com/test/nginx/
    │   ├── NginxTestApplication.java
    │   └── TestController.java
    └── resources/
        └── application.yml

快速开始

1. 启动服务

# 打包
mvn clean package -DskipTests

# 启动默认端口(8080)
mvn spring-boot:run

# 或启动 jar 包
java -jar target/nginx-test-demo-1.0.0.jar

2. 多实例启动(用于负载均衡测试)

# 启动第二个实例(端口8081)
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8081

# 启动第三个实例(端口8082)
java -jar target/nginx-test-demo-1.0.0.jar --server.port=8082

3. 接口测试

访问任意实例的接口,例如:http://127.0.0.1:8080/api/test3

返回结果:

{
  "requestPath": "/api/test3",
  "serverPort": "8080",
  "currentTime": "2026-06-20 15:30:22.124"
}

Nginx 配置示例

反向代理配置

server {
    listen 80;
    server_name localhost;

    location /api/ {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

负载均衡配置

upstream test_server {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name localhost;

    location /api/ {
        proxy_pass http://test_server;
    }
}

项目特点

  • 轻量简洁:无业务逻辑,仅用于接口测试
  • 多实例支持:可同时启动多个实例,测试负载均衡
  • 结果直观:返回结构化 JSON,方便区分不同端口的响应
  • 易于使用:标准 GET 接口,curl、浏览器均可直接调用

适用场景

  • 验证 Nginx 反向代理配置是否生效
  • 测试负载均衡策略(轮询、权重等)
  • 检查请求转发和 header 传递
  • 调试 Nginx rewrite 规则

项目源码已上传至 GitHub,欢迎 Star!
gitee地址: https://gitee.com/rumeng/nginx-test-demo

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐