nginx proxy_pass 重写为 Jenkins

nginx proxy_pass with rewrite to Jenkins

我在私有网络中有 Jenkins,在 Cloud 中使用 Bitbucket。所以我想为 Bitbucket Webhooks 提供代理。所以或多或少的连接流看起来像这样:

Bitbucket Cloud -> AWS NLB (SSL): gate.example.com -> nginx -> AWS ALB (SSL): jenkins.internal.example.com -> Jenkins

我在 nginx 中有以下配置:

resolver 127.0.0.53 valid=5s;

upstream jen {
  server jenkins.internal.example.com:443;
  keepalive 128;
}

server {
  listen 80;
  server_name gate.example.com;

  access_log /var/log/nginx/jenkins.access.log;
  error_log /var/log/nginx/jenkins.error.log debug;

  server_tokens off;


  rewrite_log on;

  ignore_invalid_headers off;

  location /jenkins/ {
    rewrite ^/jenkins/(.*) / break;
    proxy_http_version 1.1;
    proxy_set_header   Host              $host;
    proxy_set_header   X-Real-IP         $remote_addr;
    proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header   Connection "";
    proxy_set_header   X-Forwarded-Proto https;
    proxy_pass https://jen;
  }
}

而且它不起作用。我可以复制的测试:

在我看来,我在 nginx 配置中遇到了一些问题,但我无法发现它。

nginx 日志:

2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "Host: gate.example.com"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "User-Agent: curl/7.77.0"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "Accept: */*"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "X-Request-UUID: 8c05c48d-5db0-4e73-8c98-xxxxxxx"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "X-Hook-UUID: b3551c3f-43fb-4bd3-b0a4-xxxxxxx"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "X-Event-Key: repo:push"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "Content-Type: application/json; charset=UTF-8"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header: "Content-Length: 14052"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http header done
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer del: 9: 2945992864
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 generic phase: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 rewrite phase: 1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 test location: "/jenkins/"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 using configuration "/jenkins/"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http cl:14052 max:1048576
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 rewrite phase: 3
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script regex: "^/jenkins/(.*)"
2022/03/24 16:39:57 [notice] 2178625#2178625: *3061 "^/jenkins/(.*)" matches "/jenkins/bitbucket-scmsource-hook/notify", client: MY.IP.MY.IP, server: gate.example.com, request: "POST /jenkins/bitbucket-scmsource-hook/notify HTTP/1.1", host: "gate.example.com"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "/"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script capture: "bitbucket-scmsource-hook/notify"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script regex end
2022/03/24 16:39:57 [notice] 2178625#2178625: *3061 rewritten data: "/bitbucket-scmsource-hook/notify", args: "", client: MY.IP.MY.IP, server: gate.example.com, request: "POST /jenkins/bitbucket-scmsource-hook/notify HTTP/1.1", host: "gate.example.com"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 post rewrite phase: 4
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 generic phase: 5
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 generic phase: 6
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 generic phase: 7
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 access phase: 8
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 access phase: 9
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 access phase: 10
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 post access phase: 11
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 generic phase: 12
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 generic phase: 13
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http client request body preread 692
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http request body content length filter
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http body new buf t:1 f:0 000055689A5B32FC, pos 000055689A5B32FC, size: 692 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 malloc: 000055689A5D2E40:8192
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http read client request body
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: eof:0, avail:9216
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: fd:9 8192 of 8192
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: avail:1024
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http client request body recv 8192
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http body new buf t:1 f:0 000055689A5D2E40, pos 000055689A5D2E40, size: 8192 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write client request body, bufs 000055689A68A3B8
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 add cleanup: 000055689A68A5D8
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 hashed path: /var/cache/nginx/client_temp/0000000002
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 temp fd:10
2022/03/24 16:39:57 [warn] 2178625#2178625: *3061 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000002, client: 89.64.38.110, server: gate.mkyc.test.symmetrical.ai, request: "POST /jenkins/bitbucket-scmsource-hook/notify HTTP/1.1", host: "gate.mkyc.test.symmetrical.ai"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 writev: 10, 8884, 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write client request body, bufs 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: eof:0, avail:1024
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: fd:9 5168 of 5168
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: avail:0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http client request body recv 5168
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http body new buf t:1 f:0 000055689A5D2E40, pos 000055689A5D2E40, size: 5168 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write client request body, bufs 000055689A68A488
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 write: 10, 000055689A5D2E40, 5168, 8884
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http client request body rest 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http init upstream, client timer: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 epoll add event: fd:9 op:3 ev:80002005
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "Host"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script var: "gate.mkyc.test.symmetrical.ai"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "X-Real-IP"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script var: "MY.IP.MY.IP"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "X-Forwarded-For"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script var: "MY.IP.MY.IP"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "X-Forwarded-Proto"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "https"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: "Content-Length"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script var: "14052"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http script copy: ""
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "User-Agent: curl/7.77.0"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Accept: */*"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "X-Request-UUID: 8c05c48d-5db0-4e73-8c98-xxxxxxx"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "X-Hook-UUID: b3211c3f-43fb-4bd3-b0f4-xxxxxxx"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "X-Event-Key: repo:push"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Content-Type: application/json; charset=UTF-8"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header:
"POST /bitbucket-scmsource-hook/notify HTTP/1.1
Host: gate.example.com
X-Real-IP: MY.IP.MY.IP
X-Forwarded-For: MY.IP.MY.IP
X-Forwarded-Proto: https
Content-Length: 14052
User-Agent: curl/7.77.0
Accept: */*
X-Request-UUID: 8c05c48d-5db0-4e73-8c98-xxxxxxx
X-Hook-UUID: b3211c3f-43fb-4bd3-b0f4-xxxxxxx
X-Event-Key: repo:push
Content-Type: application/json; charset=UTF-8

"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http cleanup add: 000055689A68A8C8
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 init keepalive peer
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 get keepalive peer
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 get rr peer, try: 3
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 get rr peer, current: 000055689A5F9FF0 -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 stream socket 15
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 epoll add connection: fd:15 ev:80002005
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 connect to 10.10.3.187:443, fd:15 #3062
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream connect: -2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 posix_memalign: 000055689A5DB270:128 @16
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer add: 15: 60000:2945992940
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http finalize request: -4, "/bitbucket-scmsource-hook/notify?" a:1, c:2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http request count:2 blk:0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http run request: "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream check client, write event:1, "/bitbucket-scmsource-hook/notify"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream request: "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream send request handler
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 malloc: 000055689A5CEAA0:96
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 set session: 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 tcp_nodelay
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_do_handshake: -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_get_error: 2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL handshake handler: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_do_handshake: -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_get_error: 2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL handshake handler: 1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_do_handshake: -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_get_error: 2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL handshake handler: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 save session: 000055689A686D60
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_do_handshake: 1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL: TLSv1.2, cipher: "ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream ssl handshake: "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream send request
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream send request body
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 read: 10, 000055689A5D2E40, 8192, 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer buf fl:0 s:406
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer buf fl:0 s:8192
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer in: 000055689A68A970
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 malloc: 000055689A68EFA0:80
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 malloc: 000055689A67AA30:16384
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL buf copy: 406
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL buf copy: 8192
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer out: 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 read: 10, 000055689A5D2E40, 5860, 8192
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer buf fl:1 s:5860
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer in: 000055689A68A950
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL buf copy: 5860
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL to write: 14458
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_write: 14458
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 chain writer out: 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer del: 15: 2945992940
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer add: 15: 60000:2945992952
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream process header
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 malloc: 000055689A68A9E0:4096
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 posix_memalign: 000055689A5D4E50:4096 @16
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_read: -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_get_error: 2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream request: "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream dummy handler
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream request: "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream process header
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_read: 167
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_read: -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 SSL_get_error: 2
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy status 404 "404 Not Found"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Server: awselb/2.0"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Date: Thu, 24 Mar 2022 16:39:57 GMT"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Content-Type: text/plain; charset=utf-8"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Content-Length: 0"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header: "Connection: keep-alive"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy header done
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 24 Mar 2022 16:39:57 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 0
Connection: keep-alive

2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 write new buf t:1 f:0 000055689A5D5140, pos 000055689A5D5140, size: 162 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write filter: l:0 f:0 s:162
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 file cleanup: fd:10
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http cacheable: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http proxy filter init s:404 h:0 c:0 l:0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream process upstream
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 pipe read upstream: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 pipe preread: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 pipe buf free s:0 t:1 f:0 000055689A68A9E0, pos 000055689A68AA87, size: 0 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 pipe length: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 pipe write downstream: 1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 pipe write downstream done
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer: 15, old: 2945992952, new: 2945992952
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream exit: 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 finalize http upstream request: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 finalize http proxy request
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free keepalive peer
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free keepalive peer: saving connection 000055689A60EBE0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer: 15, old: 2945992952, new: 2945992952
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free rr peer 3 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http upstream temp fd: -1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http output filter "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http copy filter: "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http postpone filter "/bitbucket-scmsource-hook/notify?" 00007FFFBB415E10
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 write old buf t:1 f:0 000055689A5D5140, pos 000055689A5D5140, size: 162 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 write new buf t:0 f:0 0000000000000000, pos 0000000000000000, size: 0 file: 0, size: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write filter: l:1 f:0 s:162
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write filter limit 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 writev: 162 of 162
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http write filter 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http copy filter: 0 "/bitbucket-scmsource-hook/notify?"
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http finalize request: 0, "/bitbucket-scmsource-hook/notify?" a:1, c:1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 set http keepalive handler
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http close request
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http log handler
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A68A9E0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A5D2E40
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A5DCB10, unused: 8
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A6899D0, unused: 11
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A5D4E50, unused: 2501
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A5B31B0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 hc free: 0000000000000000
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 hc busy: 0000000000000000 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 tcp_nodelay
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 reusable connection: 1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer add: 9: 65000:2945997952
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 http keepalive handler
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 malloc: 000055689A5B31B0:1024
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: eof:1, avail:-1
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 recv: fd:9 0 of 1024
2022/03/24 16:39:57 [info] 2178625#2178625: *3061 client 89.64.38.110 closed keepalive connection
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 close http connection: 9
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 event timer del: 9: 2945997952
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 reusable connection: 0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A5B31B0
2022/03/24 16:39:57 [debug] 2178625#2178625: *3061 free: 000055689A5CD0D0, unused: 136

更新 1

我也通过以下方式进行了测试:

如果我没记错的话,这会直接将问题缩小到 nginx。

问题的原因是 proxy_set_header Host $host;。由于 nginx 对内部 ALB 执行的请求具有原始值 header。由于内部 ALB 没有默认后端但正在平衡多个服务,因此无法将请求正确路由到正确的服务。