Documentation
¶
Index ¶
Constants ¶
View Source
const ( HeaderXProxyClientIP = "X-Proxy-ClientIP" HeaderXProxyToken = "X-Proxy-Token" // #nosec G101 HeaderXProxyTime = "X-Proxy-Time" HeaderXProxyPass = "X-Proxy-Pass" )
Variables ¶
This section is empty.
Functions ¶
func GetClientIP ¶
GetClientIP 获取客户端 IP 1. 上下文存储中获取 2. 下游代理头: 令牌仍是 HashString(xip, xtime, WebTokenSalt), 且 xtime 落在 SignTTL 闭区间内 3. TCP 协议 RemoteIP(), 空则 0.0.0.0 immutable
func ProxyHandler ¶
ProxyHandler 为管理员配置的固定可信 HTTP(S) 上游创建代理.
支持 IPv4/IPv6 和私网上游, 不使用 Fiber 全局目标限制策略; backendServers 不得 来自客户端请求. 裸 host:port 仍按 HTTP 处理, 无显式端口时使用协议默认端口. backendHost 为空时保留原请求 Host, 非空时使用构造期快照; 请求路径和查询串透传. 空列表、无法解析的 URL、非 HTTP(S) 或缺主机在构造时 panic. 拨号和传输错误清空残留响应后返回原错误, 由调用方决定状态码和回包格式. HTTPS 保持证书校验, 不跟随上游重定向.
示例:
backendHost := "upstream.example:8080"
backendServers := []string{"http://upstream.example:8080"}
proxyHandler := ProxyHandler(backendServers, 1*time.Second, backendHost)
app.Use("/es/", proxyHandler)
func SetClientIP ¶
SetClientIP 首个代理加密客户端 IP, 中间代理透传 当前来访为内网 IP 会跳过设置 immutable
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.