Tôi có một ứng dụng được tạo dưới dạng hình ảnh Docker hoạt động chính xác cục bộ nhưng không thành công trong Google Cloud Run với "lỗi kết nối ngược dòng hoặc ngắt kết nối/đặt lại trước tiêu đề. Lý do đặt lại: lỗi giao thức"
Ứng dụng đang lắng nghe trên 0.0.0.0:8080 và không yêu cầu xác thực.Tôi đang chạy nó trong Docker cục bộ với
docker run --rm --name myapp -p 8080:8080 myapp:1.0
Với curl cục bộ, tôi nhận được phản hồi thành công trên /
$ cuộn tròn -v localhost:8080
* Đang cố gắng ::1...
* Bộ TCP_NODELAY
* Đã kết nối với cổng localhost (::1) 8080 (#0)
> NHẬN / HTTP/1.1
> Máy chủ: localhost:8080
> Tác nhân người dùng: curl/7.64.1
> Chấp nhận: */*
>
< HTTP/1.1 200 OK
< Loại nội dung: ứng dụng/json
< Khác nhau: Xuất xứ
< Ngày: Thứ bảy, ngày 24 tháng 7 năm 2021 13:54:11 GMT
< Độ dài nội dung: 2
<
* Kết nối #0 đến host localhost còn nguyên
OK* Đóng kết nối 0
Tôi đã triển khai tính năng này cho dịch vụ chạy trên đám mây của Google và khi thực hiện yêu cầu đầu tiên, tôi thấy đầu ra nhật ký từ ứng dụng của mình trong nhật ký chạy trên đám mây cho thấy ứng dụng đã bắt đầu và đang lắng nghe trên cổng 8080.
Tuy nhiên, một yêu cầu thất bại với
"lỗi kết nối ngược dòng hoặc ngắt kết nối/đặt lại trước các tiêu đề. lý do đặt lại: lỗi giao thức"
Đầu ra đầy đủ từ curl -v https://cloudrun-srv-stuff.a.run.app/ là như sau
* Đang thử 216.239.36.53...
* Bộ TCP_NODELAY
* Đã kết nối với cổng cloudrun-srv-lz5wvvl32a-ez.a.run.app (216.239.36.53) 443 (#0)
* ALPN, cung cấp h2
* ALPN, cung cấp http/1.1
* đặt thành công vị trí xác minh chứng chỉ:
* Tệp CA: /etc/ssl/cert.pem
CApath: không có
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), bắt tay TLS, Chứng chỉ (11):
* TLSv1.2 (IN), bắt tay TLS, trao đổi khóa máy chủ (12):
* TLSv1.2 (IN), bắt tay TLS, Máy chủ hoàn tất (14):
* TLSv1.2 (OUT), bắt tay TLS, Trao đổi khóa máy khách (16):
* TLSv1.2 (OUT), Thay đổi mật mã TLS, Thay đổi thông số mật mã (1):
* TLSv1.2 (OUT), bắt tay TLS, Đã hoàn thành (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), bắt tay TLS, Đã hoàn thành (20):
* Kết nối SSL sử dụng TLSv1.2 / ECDHE-ECDSA-CHACHA20-POLY1305
* ALPN, máy chủ chấp nhận sử dụng h2
* Chứng chỉ máy chủ:
* chủ ngữ: C=US; ST=California; L=Nhìn ra núi; O=Google LLC; CN=*.a.run.app
* ngày bắt đầu: 28 tháng 6 01:08:46 2021 GMT
* ngày hết hạn: 20 tháng 9 01:08:45 2021 GMT
* subjectAltName: máy chủ "cloudrun-srv-stuff.a.run.app" khớp với "*.a.run.app" của chứng chỉ
* tổ chức phát hành: C=US; O=Dịch vụ tin cậy của Google; CN=GTS CA 1O1
* Chứng chỉ SSL xác minh ok.
* Sử dụng HTTP2, máy chủ hỗ trợ đa dụng
* Trạng thái kết nối đã thay đổi (đã xác nhận HTTP/2)
* Sao chép dữ liệu HTTP/2 trong bộ đệm luồng sang bộ đệm kết nối sau khi nâng cấp: len=0
* Sử dụng ID luồng: 1 (xử lý dễ dàng 0x7f83b4810a00)
> NHẬN / HTTP/2
> Máy chủ: cloudrun-srv-stuff.a.run.app
> Tác nhân người dùng: curl/7.64.1
> Chấp nhận: */*
>
* Trạng thái kết nối đã thay đổi (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 502
< độ dài nội dung: 87
< loại nội dung: văn bản/đồng bằng
< ngày: Thứ bảy, ngày 24 tháng 7 năm 2021 13:58:13 GMT
< máy chủ: Google Frontend
< x-cloud-trace-context: 1370fab1a02839b367048f855593cbef/5890123523738625787;o=1
< alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
<
Các bước tiếp theo trong việc gỡ lỗi này là gì?