nginx 反向代理服务器资源偶尔(大概20%)会出现404问题

nginx 反向代理服务器资源偶尔(大概20%)会出现404问题

  • 这个问题在不同的环境不容易复现,只是在这个环境发现了这个问题。

通过不带请求头循环请求资源时发现不会出现这个问题;
通过带原始请求头信息循环请求资源时发现了这个问题出现的概率是20%;
通过改变请求头原始信息发现,一般信息不影响,当添加Cookie后会出现这个问题;
通过修改Cookie内容长短发现,Cookie太长的时候100%会出现400错误,Cookie太短的时候不会出现问题,Cookie为原始信息时会出现这个问题,因此定位到问题是Cookie太长导致,减少不必要的Cookie传递后,现在Cookie里面传2455个字符,这个问题明显改善,出现404问题概率由20%降到了0.5%;
部分资源不需要Cookie,可以将Cookie置为空字符串,这些资源就会正常返回了;
部分资源需要Cookie,否则会导致页面跳转到登录页,这部分如果需要在进一步优化的话,需要将Cookie进一步调小。

  • 涉及到的NGINX配置如下:
    nginx.conf
http {

client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
#client_body_buffer_size 1000M;
#client_max_body_size 1000M;
proxy_buffer_size 256k;
proxy_buffers 40 256k;
proxy_busy_buffers_size 256k;
proxy_connect_timeout 12000;
proxy_send_timeout 12000;
proxy_read_timeout 12000;


server {

# 日志前端资源
location /ywjk/powerlogweb/ {

  set $altered_cookie $http_cookie;

  set $token ""
  # 获取cookie某个key的值
  set $sessionid $cookie_sessionid;
  set $csrftoken $cookie_csrftoken;

  # 获取cookie某个key的值
  if ( $http_cookie ~* "Admin-Token=(.+?)(?=;|$)" ) {
  set $token $1;
  }
  set $altered_cookie "Admin-Token=$token; sessionid=$sessionid; csrftoken=$csrftoken; "

  # 更新 proxy_cookie_path
  proxy_cookie_path / /;
  # 更新 Cookie 只传需要用到的 Cookie 多余的不传 ,尽量减小 Cookie 大小,减小404出现的概率。
  proxy_hide_header Cookie;
  proxy_set_header Cookie $altered_cookie;

  # 添加 response header 进行调试
  # add_header X-altered_cookie $altered_cookie;


  # 可以将下面的代码块复制稍微改一下 不需要 Cookie 的请求将 Cookie置为空,即可正常返回,不在出现404问题
  # eg: css 替换为 documents|lib|images|fonts
  location /ywjk/powerlogweb/resource/css/ {
    # 不需要 Cookie 的请求将 Cookie置为空,即可正常返回,不在出现404问题
    proxy_hide_header Cookie;
    proxy_set_header Cookie "";

    proxy_pass http://log-web/resource/css/;
    client_max_body_size 500M;
    client_body_buffer_size 500M;
  }


    proxy_pass http://log-web/;
    client_max_body_size 500M;
    client_body_buffer_size 500M;


}

}

}

测试出错率脚本
testCurl.sh

Cookie="Admin-Token=JBY2NvdW50IjoiY"

echo $Cookie

for i in $(seq 1000) ; do
curl 'http://192.168.140.70/resource/css/base.css' \
  -H 'Accept: text/css,*/*;q=0.1' \
  -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H "Cookie: $Cookie" \
  -H 'Host: 192.168.140.70' \
  -H 'Pragma: no-cache' \
  -H 'Referer: http://192.168.140.70/powerlog/inner/%2Fdesk%2Fevent' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0' \
  --compressed \
  -sL -w "code:%{http_code}" \
  -o ./dev/dev$i \
  --insecure
echo ''
done

参考:
Nginx获取cookie值的两种方法 https://www.edoou.com/articles/1651545531542634

NGINX 变量打印(输出)-通过 response headers 发送环境变量进行调试https://www.jianshu.com/p/183d4408c5d7

Nginx反向代理丢失cookie问题处理 https://www.cnblogs.com/tiancai/p/17261923.html

删除 nginx 反向代理中的特定 cookie https://qa.1r1g.com/sf/ask/4728422051/

删除nginx反向代理中的特定cookie https://www.saoniuhuo.com/question/detail-2802774.html
解决nginx报头部或者cookie过大的400错误 https://jingyan.baidu.com/article/4f34706ed4f80fe387b56dca.html

Nginx报错104:Connection reset by peer问题的解决及分析 https://pythonjishu.com/rsiaasuyrkvnyzw/

curl添加请求头https://www.python100.com/html/91902.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容