Sign inSign up

zzwsec/codereview

By zzwsec

•Updated 10 months ago

Image
0

1.0K

zzwsec/codereview repository overview

⁠CodeReview

主要用于测试 API 网关(如 Traefik, Nginx, Istio)的路由规则、错误页面处理以及熔断机制。

⁠🏷️ 版本说明

Tag描述功能
latest / v0.2包含基础功能及渲染接口支持故障模拟及自定义错误页渲染 (/render/)。
v0.1基础版本仅支持显式的状态码路径(如 /503)。

⁠🚀 快速开始

⁠Docker 运行
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)

v0.2 版本包含以下两类接口:

⁠1. 故障模拟接口

访问指定路径直接返回对应的 HTTP 状态码,用于测试网关拦截逻辑。

路径返回状态码描述
/200默认页
/400400Bad Request
/401401Unauthorized
/403403Forbidden
/404404Not Found
/418418I'm a teapot
/500500Internal Server Error
/502502Bad Gateway
/503503Service Unavailable
/504504Gateway Timeout
⁠2. 错误页渲染接口

用于适配部分网关(如 Traefik, Ingress Nginx)的自定义错误页配置需求。此类网关通常要求后端服务返回 200 OK 才能加载自定义错误内容。

  • 路径规则: /render/{status_code}
  • 行为: HTTP 状态码返回 200 OK,响应体内容显示对应的错误信息。

示例响应 (GET /render/503):

HTTP/1.1 200 OK

=============
This is a custom error page
Error Code: 503
=============

⁠☸️ Kubernetes & Traefik 配置示例

以下示例展示如何结合 Traefik 的 errors 中间件,拦截后端 503 错误并显示自定义页面。

⁠1. 部署渲染服务
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
⁠2. 配置 Traefik 中间件
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

Tag summary

Content type

Image

Digest

sha256:1c2e47d73…

Size

2.3 MB

Last updated

10 months ago

docker pull zzwsec/codereview