动态反向代理随机出现404错误问题求助
动态反向代理程序的随机404问题
程序功能
我开发了一款动态反向代理程序,用于管理远程服务与服务器路径/子域名的映射:
- 支持路径代理:将
domain/foo映射至某台服务器,domain/bar映射至另一台服务器 - 支持传统子域名代理模式
实现逻辑
采用Gin中间件拦截所有请求,处理流程如下:
- 由于未预先定义代理路由,所有需反向代理的请求会先触发初始404错误
- 拦截该404错误,终止中间件流程
- 通过
httputil.NewSingleHostReverseProxy的Director和ModifyResponse方法调整路由与请求头 - 调用
httputil.ServeHTTP处理请求
遇到的问题
无论使用子域名还是路径代理方式,都会随机出现无规律的404错误:
- 刷新包含多个远程服务链接的静态页面时,上次返回404的文件本次可正常返回200及正确内容,但其他文件会出现404
已做排查动作
- 多次验证后端服务未返回404
- 添加日志排查请求流程
- 尝试为Gin创建新Writer实例
- 程序仅适配单个自定义域名,暂未做多域名适配
相关代码文件
- 核心Handler实现文件:
proxy/proxy.go - Handler调用入口文件:
main.go
内容的提问来源于stack exchange,提问作者Masong19hippows
相关产品推荐
相关产品推荐

