这是一个基于 Golang 编写的高性能、高并发 HTTP 错误页面服务器。专为配合 Caddy 2、Nginx 等反向代理服务器使用,用于提供美观且统一的自定义错误页面(如 404, 500, 502 等)。
默认监听 80 端口:
docker run -d \
--name error-pages \
-p 8080:80 \
mrxianyu/error_pages:latest
Docker Compose
services:
error-pages:
image: mrxianyu/error_pages:latest
container_name: error-pages
restart: always
environment:
- PORT=8080 # 可选:修改容器内部监听端口
ports:
- "8080:8080"
这是本项目的核心用法。在你的 Caddyfile 中配置 handle_errors,将错误请求拦截并转发给此服务。注意:replace_status 指令是关键,它确保最终返回给浏览器的状态码是正确的(例如 404),而不是 Go 服务返回的 200。
:80 {
# 你的正常业务反代
reverse_proxy /api/* localhost:9000
file_server
# --- 错误页面集成配置 ---
handle_errors {
# 1. 将请求路径重写为错误码 (例如 /404, /503)
rewrite * /{err.status_code}
# 2. 转发给 error-pages 服务
# 假设 docker 容器名为 error-pages,端口为 80
reverse_proxy http://error-pages:80 {
header_up Host {host}
# 3. 强制使用原始错误码覆盖后端返回的 200 OK
replace_status {err.status_code}
}
}
}
如果你需要修改代码并自行构建:
# 编译
CGO_ENABLED=0 go build -ldflags="-s -w" -o error_pages .
# 运行
./error_pages
Content type
Image
Digest
sha256:3156817f3…
Size
2.1 MB
Last updated
10 months ago
docker pull mrxianyu/error_pages