接口請求控制工具
- 功能說明
- 代理轉發
- 安全控制
- 訪問控制
- 錯誤處理
- 配置管理
- 日志管理
- 技術棧
- 快速開始
- 環境要求
- 配置說明
- 啟動服務
- 工具源碼
功能說明
代理轉發
- 支持多路由配置
- 支持靜態資源代理
- 靈活的路由規則配置
- 支持請求轉發和響應處理
- 支持負載均衡
- 支持多目標服務器配置
- 提供多種負載均衡策略:
- 輪詢(Round Robin)
- 隨機(Random)
- 加權輪詢(Weighted Round Robin)
- 加權隨機(Weighted Random)
- 最小連接數(Least Connections)
- 支持服務器權重配置
- 動態連接數跟蹤
安全控制
-
XSS 防護:
- 自動檢測和攔截 XSS 攻擊
- 可配置的 XSS 過濾規則
- 按路由配置是否啟用
-
CSRF 防護:
- 基于 Token 的 CSRF 防護
- 支持安全方法豁免(GET、HEAD等)
- 按路由配置是否啟用
-
文件上傳控制:
- 可配置的文件類型白名單
- 可配置的文件大小限制
- 文件名安全檢查
- 按路由配置是否啟用
訪問控制
-
IP 黑白名單:
- 支持 IP 白名單配置
- 支持 IP 黑名單配置
- 動態的 IP 封禁機制
-
請求頻率限制:
- 基于令牌桶算法
- 可配置的請求速率
- 按路由獨立限制
錯誤處理
- 自定義錯誤頁面:
- 502:目標服務器無響應
- CSRF:CSRF 驗證失敗
- static-404:靜態資源未找到
- 403:IP 被臨時封禁
- 404:路由未找到
- 429:請求頻率超限
- 500:服務器內部錯誤
- 友好的錯誤提示
- 詳細的錯誤日志記錄
配置管理
-
路由配置:
{"routes": {"/api": {"targetUrls": ["http://localhost:8080","http://localhost:8081"],"loadBalance": {"strategy": "WEIGHTED_ROUND_ROBIN","weights": {"http://localhost:8080": 3,"http://localhost:8081": 2}},"rateLimit": 10,"isStatic": false,"security": {"enableXssFilter": true,"enableCsrfFilter": true,"enableFileUploadFilter": true,"fileUpload": {"maxFileSize": 10485760,"allowedFileTypes": ["image/jpeg","image/png","image/gif","application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document"]}}}} }
-
IP 白名單配置:
["127.0.0.1", "192.168.1.100"]
-
IP 黑名單配置:
{"192.168.1.200": {"banTime": "2024-03-10T10:00:00","reason": "頻繁訪問"} }
日志管理
- 代理請求日志
- 錯誤日志
- 安全事件日志
- 按日期自動歸檔
- 可配置的日志級別
技術棧
- Spring Boot 2.3.4
- Thymeleaf
- Lombok
- Commons Pool2
快速開始
環境要求
- JDK 8+
- Maven 3.6+
配置說明
- 配置文件位置:
源碼/config/
- 主要配置文件:
- proxy-routes.json:代理路由配置
- targetUrls:目標服務器地址列表
- loadBalance:負載均衡配置
- strategy:負載均衡策略
- weights:服務器權重配置(可選)
- rateLimit:請求頻率限制
- isStatic:是否為靜態資源
- security:安全配置
- ip-whitelist.json:IP白名單配置
- ip-blacklist.json:IP黑名單配置
- proxy-routes.json:代理路由配置
啟動服務
-
編譯項目:
mvn clean package
-
運行服務:
java -jar target/SpringBoot-1.0-SNAPSHOT-execute.jar
-
默認端口:10020
工具源碼
接口請求控制工具