主要用于测试 API 网关(如 Traefik, Nginx, Istio)的路由规则、错误页面处理以及熔断机制。
| Tag | 描述 | 功能 |
|---|---|---|
latest / v0.2 | 包含基础功能及渲染接口 | 支持故障模拟及自定义错误页渲染 (/render/)。 |
v0.1 | 基础版本 | 仅支持显式的状态码路径(如 /503)。 |
docker run -d -p 5000:5000 --name debug-target zzwsec/codereview:latest
# 1. 模拟 503 错误 (返回 HTTP 503)
curl -v http://localhost:5000/503
# 2. 渲染 500 错误页内容 (返回 HTTP 200,用于网关错误页配置)
curl -v http://localhost:5000/render/500
v0.2 版本包含以下两类接口:
访问指定路径直接返回对应的 HTTP 状态码,用于测试网关拦截逻辑。
| 路径 | 返回状态码 | 描述 |
|---|---|---|
/ | 200 | 默认页 |
/400 | 400 | Bad Request |
/401 | 401 | Unauthorized |
/403 | 403 | Forbidden |
/404 | 404 | Not Found |
/418 | 418 | I'm a teapot |
/500 | 500 | Internal Server Error |
/502 | 502 | Bad Gateway |
/503 | 503 | Service Unavailable |
/504 | 504 | Gateway Timeout |
用于适配部分网关(如 Traefik, Ingress Nginx)的自定义错误页配置需求。此类网关通常要求后端服务返回 200 OK 才能加载自定义错误内容。
/render/{status_code}200 OK,响应体内容显示对应的错误信息。示例响应 (GET /render/503):
HTTP/1.1 200 OK
=============
This is a custom error page
Error Code: 503
=============
以下示例展示如何结合 Traefik 的 errors 中间件,拦截后端 503 错误并显示自定义页面。
apiVersion: apps/v1
kind: Deployment
metadata:
name: custom-errors
spec:
replicas: 1
selector:
matchLabels:
app: custom-errors
template:
metadata:
labels:
app: custom-errors
spec:
containers:
- name: app
image: zzwsec/codereview:v0.2
ports:
- containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: custom-errors
spec:
ports:
- port: 5000
selector:
app: custom-errors
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: error-rewriter
spec:
errors:
status:
- "500-599"
# (可选) 状态码重写:将 503 映射为 500
statusRewrites:
"503": 500
# Traefik 请求此路径获取页面内容,该路径需返回 200 OK
query: /render/{status}
service:
name: custom-errors
port: 5000
Content type
Image
Digest
sha256:1c2e47d73…
Size
2.3 MB
Last updated
10 months ago
docker pull zzwsec/codereview