This commit is contained in:
wjqserver 2025-04-17 22:20:06 +08:00
parent 7e5b12dff8
commit dd2f5b5a12
7 changed files with 50 additions and 8 deletions

View file

@ -13,7 +13,7 @@ import (
)
var (
headersToRemove = map[string]struct{}{
respHeadersToRemove = map[string]struct{}{
"Content-Security-Policy": {},
"Referrer-Policy": {},
"Strict-Transport-Security": {},
@ -22,6 +22,17 @@ var (
"X-Served-By": {},
"X-Fastly-Request-Id": {},
}
reqHeadersToRemove = map[string]struct{}{
"CF-IPCountry": {},
"CF-RAY": {},
"CF-Visitor": {},
"CF-Connecting-IP": {},
"CF-EW-Via": {},
"CDN-Loop": {},
"Upgrade": {},
"Connection": {},
}
)
func ChunkedProxyRequest(ctx context.Context, c *app.RequestContext, u string, cfg *config.Config, matcher string) {
@ -42,8 +53,9 @@ func ChunkedProxyRequest(ctx context.Context, c *app.RequestContext, u string, c
HandleError(c, fmt.Sprintf("Failed to create request: %v", err))
return
}
setRequestHeaders(c, req)
removeWSHeader(req) // 删除Conection Upgrade头, 避免与HTTP/2冲突(检查是否存在Upgrade头)
//removeWSHeader(req) // 删除Conection Upgrade头, 避免与HTTP/2冲突(检查是否存在Upgrade头)
AuthPassThrough(c, cfg, req)
resp, err = client.Do(req)
@ -101,7 +113,7 @@ func ChunkedProxyRequest(ctx context.Context, c *app.RequestContext, u string, c
// 复制响应头,排除需要移除的 header
for key, values := range resp.Header {
if _, shouldRemove := headersToRemove[key]; !shouldRemove {
if _, shouldRemove := respHeadersToRemove[key]; !shouldRemove {
for _, value := range values {
c.Header(key, value)
}