HTTP 502 Bad Gateway Giải thích
API Scraping Universal Không có Rác lấy các trang web công cộng thông qua một unlocker web được quản lý và trả về nội dung trang cho các quy trình dữ liệu cần phân loại chính xác các lỗi HTTP.
TL;DR
- Một 502 xác định một phản hồi không hợp lệ từ upstream. Một gateway hoặc proxy có thể chấp nhận yêu cầu của khách hàng nhưng không thể sử dụng câu trả lời từ máy chủ tiếp theo.
- Trình duyệt hiếm khi là thành phần bị lỗi. Các proxy nghịch đảo, bộ cân bằng tải, quy trình ứng dụng, DNS và TLS giữa các hops nội bộ cần được chú ý trước.
- Một lỗi upstream hợp lệ không phải là một 502. Nếu nguồn trả về một 404 hoặc 500 được định dạng tốt, gateway thường nên chuyển câu trả lời đó qua.
- Các nhật ký cần được kết hợp giữa các lớp. ID yêu cầu edge, lỗi proxy, sự kiện ứng dụng và thời gian triển khai thường tiết lộ chính xác điểm gãy.
- Nội dung đã được hiển thị vẫn cần được xác thực. Một trang lỗi có thương hiệu có thể trông hoàn chỉnh trong khi không chứa dữ liệu mục tiêu, vì vậy việc kiểm tra trạng thái và nội dung nên đi cùng nhau.
Tại sao một 502 chỉ ra giữa các máy chủ
Một phản hồi 502 có nghĩa là máy chủ phía trước đã có khả năng kết nối đủ để nhận yêu cầu của bạn và đủ logic để hoạt động như một trung gian. Sự cố xảy ra khi trung gian đó liên lạc với một hệ thống khác cần thiết để hoàn thành yêu cầu. Hệ thống đó có thể là một máy chủ ứng dụng, một proxy upstream, một sidecar dịch vụ mesh, một môi trường thực thi chức năng hoặc một nguồn phía sau mạng phân phối nội dung.
Sự khác biệt rất quan trọng vì việc xóa bộ nhớ cache của trình duyệt không thể sửa chữa một quy trình ứng dụng đã bị crash hoặc tiêu đề phản hồi sai định dạng. Một khách truy cập có thể loại trừ một VPN cục bộ hoặc proxy tùy chỉnh, nhưng việc sửa chữa bền bỉ thường thuộc về nhà điều hành dịch vụ. Cuộc điều tra ngắn nhất bắt đầu bằng cách vẽ chuỗi yêu cầu thực tế và đặt tên cho máy chủ đã tạo ra trang 502.
Đối với việc thu thập tự động, một 502 nên duy trì là một kết quả có thể quan sát được hơn là bị nhầm lẫn với nội dung trống. Ghi lại trạng thái phản hồi, URL cuối, tiêu đề quan trọng và một dấu vân tay nội dung nhỏ. Những trường này giúp một pipeline dữ liệu phân biệt một lỗi upstream với một trang thực sự chỉ chứa ít văn bản.
HTTP 502 Bad Gateway có nghĩa là gì
HTTP 502 Bad Gateway có nghĩa là một máy chủ hoạt động như một gateway hoặc proxy đã nhận một phản hồi không hợp lệ từ một máy chủ upstream. Cụm từ này xuất phát từ tiêu chuẩn HTTP Semantics. Gateway có thể tham gia vào yêu cầu, nhưng câu trả lời mà nó nhận được không thể được sử dụng để thỏa mãn yêu cầu của khách hàng.
Một phản hồi không hợp lệ có thể có nghĩa là khung HTTP sai định dạng, kết nối bị đóng trước khi một phản hồi hoàn chỉnh đến, không khớp giao thức, hoặc không thể thiết lập kết nối mong đợi đến upstream đã chọn. Trạng thái không xác định được sự kiện nào trong số những sự kiện đó đã xảy ra. Nó xác định biên giới nơi mà một trung gian không thể chuyển đổi sự tương tác từ upstream thành một phản hồi hợp lệ từ downstream.
Cách một phản hồi không hợp lệ từ upstream trở thành một 502
Một trình duyệt gửi yêu cầu đến tên miền công cộng. Một edge CDN, proxy nghịch đảo hoặc bộ cân bằng tải chấp nhận nó, áp dụng các quy tắc định tuyến và chọn một điểm đến upstream. Trung gian sau đó mở hoặc tái sử dụng một kết nối và mong đợi một phản hồi phù hợp với giao thức đã thỏa thuận.
Nếu upstream gửi HTTP hợp lệ, bao gồm một phản hồi 4xx hoặc 5xx hợp lệ, trung gian có thể chuyển tiếp nó. Nếu upstream đóng socket giữa các tiêu đề, nói HTTP đơn giản trên cổng TLS, trả về khung sai định dạng, hoặc không bao giờ trở thành một peer có thể sử dụng, trung gian có thể tổng hợp một 502. Trang lỗi vì vậy thuộc về trung gian ngay cả khi một lỗi cơ sở nằm ở nơi khác.
Nội dung phản hồi là cụ thể cho từng triển khai. Một CDN có thể hiển thị thương hiệu của riêng nó, một proxy nghịch đảo có thể trả về một trang mặc định nhỏ và một gateway ứng dụng có thể đính kèm một định danh yêu cầu. Bảo tồn định danh đó vì nó thường là cầu nối giữa các nhật ký edge và nhật ký nguồn.
| Lớp | Điều gì cần kiểm tra | Tại sao nó quan trọng |
|---|---|---|
| Khách hàng đến edge | URL, kết quả DNS, proxy cục bộ, kết nối TLS | Xác nhận xem yêu cầu có đến được trung gian công cộng hay không |
| Định tuyến edge | Pool đã chọn, quy tắc định tuyến, trạng thái sức khỏe | Cho thấy liệu lưu lượng có đến được upstream dự kiến không |
| Kết nối upstream | Lỗi kết nối, giao thức, cổng, điểm đặt lại | Giải thích tại sao trung gian đã từ chối sự trao đổi |
| Ứng dụng | Sức khỏe quy trình, nhật ký khởi động, khung phản hồi | Tìm thấy các sự cố hoặc đầu ra sai định dạng từ nguồn |
Nơi lỗi 502 thường bắt đầu
Lỗi HTTP 502 thường tập trung xung quanh tính kết nối, sự đồng thuận giao thức, và sức khỏe quy trình ứng dụng, vì vậy cuộc điều tra nên phân loại lỗi trước khi thay đổi thời gian chờ hoặc cài đặt bộ nhớ cache.
Quy trình ứng dụng không khả dụng
Một worker có thể đã thoát, không vượt qua kiểm tra sức khỏe, hoặc không bao giờ liên kết với cổng đã cấu hình. Proxy vẫn có thể chấp nhận lưu lượng công cộng, nhưng không có quy trình khỏe mạnh nào khả dụng ở phía sau tuyến đường đã chọn.
Giao thức hoặc cổng sai
Một tuyến đường gửi HTTPS đến một bộ nghe HTTP thông thường, HTTP đến một bộ nghe chỉ TLS, hoặc lưu lượng truy cập đến cổng sai sẽ tạo ra byte mà cổng không thể diễn giải là phản hồi upstream mong đợi.
Kết nối bị đóng giữa chừng
Upstream có thể chấp nhận socket và sau đó chấm dứt nó trước khi hoàn thành tiêu đề hoặc thân. Các sự cố quy trình, áp lực bộ nhớ và các kiểm soát bảo mật trung gian có thể tạo ra mô hình này.
Khung phản hồi bị lỗi
Cú pháp tiêu đề không hợp lệ, tín hiệu độ dài thân mâu thuẫn hoặc byte trái phép có thể làm cho một phản hồi upstream có thể tiếp cận trở nên không sử dụng được đối với một cổng tuân thủ tiêu chuẩn.
Giải quyết tên bên trong mạng
Tên miền công cộng có thể giải quyết chính xác trong khi tên upstream nội bộ của proxy lại giải quyết đến một địa chỉ cũ hoặc không có địa chỉ. Đây là một vấn đề DNS ở phía người vận hành, không phải là vấn đề trang ở phía khách.
Mismatch triển khai
Một phiên bản ứng dụng mới, định nghĩa tuyến đường, chứng chỉ hoặc cổng dịch vụ có thể được phát hành không theo thứ tự. So sánh thời gian lỗi đầu tiên với các sự kiện triển khai thường nhanh chóng phơi bày sự không khớp.
Theo dõi Hops bị hỏng mà không cần đoán
Một cuộc điều tra 502 hữu ích di chuyển từ trung gian sản xuất phản hồi về phía upstream, một biên giới tại một thời điểm.
- Xác định nhà sản xuất phản hồi. Kiểm tra thương hiệu trang, tiêu đề phản hồi, tiêu đề máy chủ khi có mặt, và định danh yêu cầu để xác định xem CDN, bộ cân bằng tải, hoặc proxy ngược đã tạo ra 502 hay chưa.
- Xác nhận phạm vi. So sánh thiết bị khác, mạng, tên miền, khu vực và điểm cuối. Một đường dẫn thất bại gợi ý về phạm vi định tuyến hoặc ứng dụng; mỗi đường dẫn thất bại cho thấy một vấn đề nguồn gốc hoặc biên lớn hơn.
- Lập bản đồ tuyến đường thực tế. Ghi lại mỗi hop từ biên đến dịch vụ. Bao gồm các cổng, giao thức, tên DNS, kiểm tra tình trạng, và bất kỳ lớp dịch vụ-mesh hoặc bảo mật nào có thể chấm dứt một kết nối.
- Đọc lỗi trung gian. Nhật ký proxy thường phân biệt từ chối kết nối, đóng sớm, tiêu đề không hợp lệ, lỗi DNS, và lỗi đàm phán TLS. Thông điệp đó hữu ích hơn so với cụm từ lý do công khai.
- Kiểm tra upstream từ mạng gateway. Một yêu cầu kiểm tra sức khỏe trực tiếp từ cùng một ngữ cảnh mạng xác minh khả năng tiếp cận và giao thức mà không liên quan đến tuyến đường biên công khai.
- Liên kết nhật ký ứng dụng. Nếu không có yêu cầu nào xuất hiện tại ứng dụng, sự cố xảy ra trước đó. Nếu một yêu cầu xuất hiện và kết thúc đột ngột, kiểm tra tình trạng quy trình và tạo phản hồi.
- So sánh các thay đổi gần đây. Chỉnh sửa tuyến đường, thay đổi cổng, cập nhật chứng chỉ, khởi động lại phụ thuộc, và các sự kiện thu nhỏ nên phù hợp với 502 đầu tiên được quan sát trước khi chúng được xem như nguyên nhân.
Định nghĩa chính thức trong Cách nghĩa HTTP, sự phân biệt thực tế được tài liệu bởi tham chiếu 502 của MDN, và hướng dẫn edge-versus-origin từ hướng dẫn 502 và 504 của Cloudflare hỗ trợ phương pháp hop-by-hop này.
Những gì một Người tham quan có thể kiểm tra an toàn
Một người tham quan có thể cô lập mạng cục bộ mà không thực hiện những thay đổi hệ thống không an toàn, nhưng một 502 kéo dài thường cần chủ sở hữu trang web.
- Kiểm tra xem lỗi có giới hạn ở một trang web không. Nếu các trang web không liên quan vẫn hoạt động, kết nối internet cục bộ về cơ bản là chức năng.
- So sánh một mạng thứ hai. Một kết nối di động có thể tiết lộ liệu có VPN, cổng doanh nghiệp, hoặc đường dẫn ISP nào liên quan hay không.
- Tạm thời gỡ bỏ một proxy tùy chỉnh hoặc VPN. Chỉ thực hiện điều này khi chính sách cho phép, sau đó khôi phục các kiểm soát nơi làm việc cần thiết sau thử nghiệm.
- Bảo vệ ID yêu cầu và thời gian. Các chi tiết đó cung cấp cho nhân viên hỗ trợ một sự kiện có thể tìm kiếm thay vì một ảnh chụp màn hình không có khóa liên hệ.
Những gì các Nhà vận hành trang web nên sửa chữa
Các nhà vận hành nên sửa chữa hợp đồng upstream bị hỏng thay vì ẩn triệu chứng phía sau một thời gian chờ đợi của khách hàng dài hơn.
Bắt đầu với sức khỏe và định tuyến upstream. Xác nhận rằng dịch vụ được chọn có các phiên bản sẵn sàng, rằng các kiểm tra sức khỏe sử dụng đường dẫn và giao thức đúng, và rằng cổng đích của gateway khớp với bộ lắng nghe quy trình. Một bảng điều khiển cơ sở hạ tầng màu xanh không đủ nếu kiểm tra thăm dò một cổng khác với lưu lượng sản xuất.
Sau đó kiểm tra tính chính xác của phản hồi. Xác thực tiêu đề và khung tại biên giới ứng dụng, đặc biệt sau các thay đổi về khung, proxy, hoặc nén. Một yêu cầu trực tiếp đến ứng dụng từ mạng gateway có thể cho thấy liệu ứng dụng có phát ra HTTP hợp lệ trước khi một lớp khác biến đổi nó hay không.
Cuối cùng, làm cho các lỗi có thể quy trách nhiệm. Truyền bá một định danh yêu cầu, giữ cho đồng hồ biên và ứng dụng được đồng bộ, và ghi lại việc lựa chọn tuyến đường. Cảnh báo riêng về các lỗi kết nối gateway, phản hồi upstream không hợp lệ, và các phản hồi 5xx do ứng dụng tạo ra vì những loại này có những người sở hữu khác nhau.
Tách biệt 502 khỏi các lỗi máy chủ lân cận
Các mã trạng thái gần nhất mô tả các ranh giới thất bại khác nhau, ngay cả khi các trang lỗi của chúng trông tương tự.
| Tín hiệu | Ý nghĩa có thể | Chủ sở hữu tiếp theo |
|---|---|---|
| 502 Bad Gateway | Gateway nhận được một phản hồi upstream không thể sử dụng | Chủ sở hữu proxy, tuyến đường hoặc dịch vụ upstream |
| 503 Service Unavailable | Máy chủ hiện không thể xử lý yêu cầu | Chủ sở hữu năng lực, bảo trì hoặc kiểm soát tiếp nhận |
| 504 Gateway Timeout | Gateway không nhận được phản hồi upstream kịp thời | Chủ sở hữu độ trễ và phụ thuộc |
| 500 Internal Server Error | Máy chủ phản hồi gặp phải một điều kiện nội bộ không xác định | Chủ sở hữu ứng dụng |
Phân loại 502 trong quy trình dữ liệu web
Một quy trình dữ liệu web nên xác thực cả siêu dữ liệu vận chuyển và nội dung. Scrapeless Universal Scraping API có thể thu hồi các trang công khai đã được kết xuất, nhưng logic downstream vẫn cần xác minh rằng kết quả đại diện cho trang yêu cầu chứ không phải là một tài liệu lỗi trung gian.
Lưu URL yêu cầu, URL cuối, trạng thái, thời gian phản hồi, loại nội dung, tiêu đề đã chuẩn hóa, và một mã băm thân ngắn. Phân loại một 502 như bằng chứng cơ sở hạ tầng, giữ nó ra khỏi tập dữ liệu đã trích xuất, và đưa tên máy chủ hoặc tuyến đường gặp lỗi lên bộ phận vận hành. Điều này bảo tồn chất lượng dữ liệu mà không giả vờ rằng một trang lỗi là tài liệu nguồn hợp lệ.
Sử dụng thể tích yêu cầu có giới hạn và tôn trọng các điều khoản mục tiêu, kiểm soát truy cập, và luật pháp áp dụng. Một lớp truy vấn được quản lý giúp tiêu chuẩn hóa quan sát; nó không cấp quyền truy cập vào nội dung hạn chế hoặc vượt qua các quyết định ủy quyền của một trang web.
Ý nghĩa hữu ích đằng sau một 502
HTTP 502 Bad Gateway là một gợi ý chính xác: một trung gian không thể sử dụng phản hồi từ máy chủ mà nó phụ thuộc vào. Trang công khai không thể nêu tên defect chính xác, nhưng nó thu hẹp cuộc điều tra đến ranh giới gateway-to-upstream.
Lập bản đồ các bước nhảy, xác định hệ thống nào tạo ra phản hồi, đối chiếu ID yêu cầu, và kiểm tra upstream đã chọn từ cùng một bối cảnh mạng. Trình tự đó biến một trang nhìn có vẻ chung chung thành một chẩn đoán định tuyến, giao thức hoặc quy trình có thể thực hiện.
Sẵn sàng làm cho các lỗi HTTP dễ phân loại hơn?
Xây dựng một quy trình truy xuất web công khai ghi lại bằng chứng xung quanh HTTP 502 thay vì coi mỗi lần truy cập thất bại như là cùng một sự kiện.
Đăng ký hôm nay và nhận được $5 tín dụng miễn phí — không cần thẻ tín dụng.
Nhận tín dụng $5 của bạn →Câu hỏi thường gặp
Lỗi 502 Bad Gateway có phải do trình duyệt của tôi gây ra không?
Lỗi 502 Bad Gateway thường được tạo ra bởi một máy chủ hoạt động như một gateway hoặc proxy, không phải bởi trình duyệt. Một VPN cục bộ, proxy tùy chỉnh, hoặc sản phẩm bảo mật mạng có thể ảnh hưởng đến con đường, vì vậy so sánh một mạng khác là hữu ích, nhưng việc sửa chữa lâu dài thường thuộc về nhà điều hành dịch vụ.
Sự khác biệt giữa 502 và 504 là gì?
Một 502 có nghĩa là gateway nhận được phản hồi upstream không hợp lệ hoặc không thể sử dụng, trong khi một 504 có nghĩa là gateway không nhận được phản hồi upstream kịp thời. Cái đầu tiên chỉ ra tính hợp lệ của phản hồi hoặc thiết lập kết nối; cái thứ hai chỉ ra độ trễ hoặc một sự chờ upstream đã vượt quá giới hạn của gateway.
Có thể DNS gây ra lỗi 502 không?
DNS có thể gây ra lỗi 502 khi gateway không thể giải quyết tên upstream nội bộ hoặc giải quyết nó đến đích sai. DNS công khai vẫn có thể hoạt động hoàn hảo, đó là lý do tại sao các nhà điều hành phải kiểm tra giải quyết tên từ môi trường mạng riêng của gateway.
Một scraper có nên phân tích HTML trả về với một 502 không?
Một scraper nên xem xét phần thân của 502 như là nội dung chẩn đoán, không phải dữ liệu trang mục tiêu. Giữ lại đủ phần thân để xác định nhà sản xuất phản hồi, sau đó loại bỏ nó khỏi việc trích xuất và ghi lại trạng thái, URL cuối, tiêu đề, và định danh yêu cầu.
Một 502 có chứng minh máy chủ nguồn đang xuống không?
Một 502 không chứng minh nguồn đang xuống. Nguồn có thể khỏe mạnh nhưng được tiếp cận qua giao thức, cổng, phản hồi DNS, tuyến đường, hoặc cấu hình chứng chỉ sai, và một trung gian cũng có thể đóng hoặc làm hỏng trao đổi.