504 Hết thời gian chờ Gateway

Lỗi 504 Gateway Timeout là gì, phát sinh ở tầng nào, cách crawler phản ứng và cách chẩn đoán nguyên nhân upstream chậm.

Xuất bản lần đầu: 28 thg 6, 2026 · Cập nhật lần cuối: 22 thg 8, 2026 · Advanced
Ngôn ngữ
1 tín hiệu bằng chứng trên trang này

504 Gateway Timeout nghĩa là gateway hoặc proxy không nhận phản hồi kịp thời từ upstream. Đây là timeout, khác 502 khi phản hồi không hợp lệ và 503 khi máy chủ tuyên bố không khả dụng. Google xem timeout cùng các lỗi 429/500/503 là vấn đề khả năng truy cập: crawl giảm khi lỗi tăng và trang có thể rời chỉ mục nếu tình trạng kéo dài. Không có ngưỡng hai ngày được ghi riêng cho 504. Hãy xác định hop phát lỗi, đối chiếu log và trace, rồi sửa hiệu năng origin hoặc cấu hình tầng tương ứng; tăng timeout đơn thuần thường chỉ che giấu vấn đề.

Tóm tắt — 504 là gateway/proxy báo rằng upstream không phản hồi trong cửa sổ timeout — một timeout, khác 502 (phản hồi xấu) và 503 (chủ động không khả dụng). Đây là vấn đề khả năng truy cập, không phải hình phạt. Timeout nằm cùng nhóm với 429/500/503: Googlebot giảm nhịp khi gặp chúng, và 504 kéo dài tạo rủi ro mất chỉ mục. Cách sửa bền vững cho nguyên nhân phía origin là thời gian phản hồi máy chủ (TTFB), không phải timeout dài hơn; tăng timeout thường che giấu upstream chậm và có thể làm quá tải tệ hơn.

504 phát sinh ở đâu trong chuỗi yêu cầu

Đường đi hiện đại của yêu cầu thường là: trình duyệt → CDN/edge → load balancer → reverse proxy (ví dụ Nginx) → app server (PHP-FPM, Node…) → cơ sở dữ liệu / API bên thứ ba. 504 được tạo bởi thành phần đang chờ thành phần phía sau khi timeout hết hạn. Đây là câu hỏi chẩn đoán đầu tiên. Evidence for this claim A 504 response means a gateway or proxy did not receive a timely response from an upstream server. Scope: RFC 9110 defines the timeout semantics; it does not determine why the upstream response was delayed. Confidence: high · Verified: IETF: RFC 9110 §15.6.5 — 504 Gateway Timeout

  • CDN/edge hết thời gian chờ origin → cần cải thiện hiệu năng origin hoặc thận trọng tăng timeout upstream của CDN.
  • Load balancer hết thời gian chờ app server → kiểm tra sức khỏe app server và autoscaling.
  • Reverse proxy hết thời gian chờ tiến trình ứng dụng → xem proxy_read_timeout / fastcgi_read_timeout của Nginx truy vấn hay tiến trình chậm phía sau.

Xác định đúng tầng rất quan trọng, vì “sửa timeout ở edge” và “sửa truy vấn cơ sở dữ liệu chậm ở origin” là hai công việc hoàn toàn khác.

Nguyên nhân gây 504

Bản thân mã trạng thái không chứng minh nguyên nhân; nó chỉ cho biết gateway hết thời gian chờ upstream. Những mục sau là nghi phạm phổ biến đáng kiểm tra, không phải sự thật mà 504 đã xác lập. Hãy xác nhận bằng log và trace trước khi hành động:

  • Truy vấn cơ sở dữ liệu hoặc lời gọi API upstream chậm. Một truy vấn chưa có index hoặc dependency bên thứ ba ì ạch có thể đẩy thời gian phản hồi vượt timeout.
  • Máy chủ/ứng dụng quá tải và cạn tài nguyên. Khi đủ nhiều yêu cầu đồng thời, hàng đợi dài ra, worker kín chỗ và phản hồi không đến kịp.
  • Giá trị timeout cấu hình sai giữa Nginx, Apache, load balancer hoặc CDN; các tầng thường không khớp nên một tầng bỏ cuộc trước tầng khác.
  • Đỉnh lưu lượng, bot flood hoặc DDoS tạm thời vượt quá dung lượng.

504 thường gián đoạn và phụ thuộc tải

Đây là điều khiến chúng khó chịu. Khác outage cứng, 504 thường chỉ xuất hiện khi có tải: monitor uptime ping trong lúc yên tĩnh có thể báo xanh 100%, trong khi Googlebot crawl theo đợt nặng hơn âm thầm gặp timeout. Trong Kiểm tra URL của Google Search Console, hiện tượng này có thể xuất hiện dưới điều kiện “Hostload exceeded” (bản dịch) «tải máy chủ vượt ngưỡng» thay vì lỗi liên tục rõ ràng. Nếu hệ thống giám sát nói mọi thứ ổn nhưng Crawl Stats không đồng ý, 504 phụ thuộc tải là nghi phạm hàng đầu.

Googlebot và Bingbot xử lý timeout thế nào

Google không xem 504 là đánh giá chất lượng nội dung; đó là tín hiệu khả dụng và phản ứng là tự động giảm nhịp. Tài liệu crawl viết rõ: “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (bản dịch) «Googlebot sẽ giảm hoạt động crawl nếu phát hiện máy chủ gặp khó khăn khi phản hồi yêu cầu crawl». Hướng dẫn crawl budget cho website lớn diễn đạt tương tự: “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (bản dịch) «Nếu website chậm hoặc trả lỗi máy chủ, giới hạn giảm và Google crawl ít hơn». Evidence for this claim Google reduces crawling when server errors or slow responses indicate a site is having trouble responding. Scope: Google's documentation supports automatic crawl throttling for server trouble; it does not attribute a specific 504 to any particular bottleneck. Confidence: high · Verified: Google: Troubleshoot crawling errors

Cách diễn đạt mới nhất liên hệ trực tiếp với phản hồi chậm/timeout nằm trong bài Inside Googlebot tháng 3 năm 2026 của Google, nơi Gary Illyes được trích: “If your server is struggling to serve bytes, our crawlers will automatically back off to avoid overloading your infrastructure, which will drop your crawl frequency.” (bản dịch) «Nếu máy chủ chật vật gửi dữ liệu, crawler sẽ tự động giảm nhịp để tránh làm hạ tầng quá tải, khiến tần suất crawl giảm». Đây là thông tin do Search Engine Land thuật lại; nếu trích ở nơi khác, nên đối chiếu bản ghi hoặc transcript gốc. 504 chính là biểu hiện hữu hình của sự chật vật đó.

Một sắc thái cần hiểu: Google không phải lúc nào cũng nhìn thấy mã “504” như trình duyệt. Nếu timeout xảy ra trước khi Googlebot nhận bất kỳ dòng trạng thái nào, Crawl Stats ghi nhận là timeout/lỗi mạng thay vì 5XX rõ ràng. Nhưng khi proxy hoặc CDN trung gian hết thời gian và tự tạo phản hồi 504, Googlebot nhận lỗi máy chủ 5XX tiêu chuẩn. Dù trường hợp nào, tác động giống nhau: tốc độ crawl bị giảm và nếu kéo dài, URL bị loại khỏi chỉ mục.

Bing ghi nhận timeout thành một nhóm lỗi crawl riêng, tách khỏi lỗi máy chủ; Bingbot ngừng cố truy cập trang khi phản hồi quá chậm. Khuyến nghị của Bing là kiểm tra thời gian phản hồi máy chủ, cập nhật phần mềm, tối ưu tài nguyên chậm và đọc log để tìm mẫu hệ thống thay vì trục trặc đơn lẻ. Bing không công bố chi tiết giảm nhịp và phục hồi như Google, nên chỉ xem mục đích của hai bên là tương đồng rộng, không khẳng định hành vi giống hệt.

Vòng phản hồi giảm nhịp rồi phục hồi

Điểm đáng yên tâm: vòng lặp này tự động và tự điều chỉnh. Google giảm crawl khi gặp lỗi và timeout, rồi từ từ tăng trở lại sau khi phản hồi khỏe. Không có nút “bỏ giới hạn” thủ công cần bấm khi vấn đề gốc đã được sửa. John Mueller nói: “Once things settle down on the server, the crawl rate will return to normal automatically.” (bản dịch) «Khi tình hình trên máy chủ ổn định, tốc độ crawl sẽ tự động trở lại bình thường». Ông cũng nêu tính bất đối xứng: giảm nhịp diễn ra nhanh để giải quyết vấn đề tức thời, còn tăng lại được thực hiện thận trọng.

Thời lượng biến trục trặc thành vấn đề lập chỉ mục

504 ngắn và thỉnh thoảng — vài lỗi trong đợt tăng tải rồi được xử lý nhanh — sẽ được thử lại và phần lớn chấp nhận được. Rủi ro mất chỉ mục đến từ mẫu timeout kéo dài trong một cửa sổ rộng. Cơ chế “quay lại sau” được Google ghi nhận, khi bạn chủ động trả 503 hoặc 429 lúc quá tải, mô tả mốc khoảng hai ngày trước khi URL bắt đầu bị loại; nhưng con số đó dành đích danh cho 503/429, không phải 504. Hướng dẫn 5xx rộng hơn nói tốc độ crawl giảm theo tỷ lệ URL lỗi rồi phục hồi khi phản hồi khỏe, không nêu thời hạn cố định riêng cho 504. Áp mốc hai ngày cho 504 là suy luận hợp lý, không phải sự thật được ghi nhận: 504 ngắn có thể sống sót, còn mẫu kéo dài nhiều ngày là vùng cần lo — không phải ngày kích hoạt được bảo đảm.

Vì sao điều này quan trọng hơn với website lớn và thương mại điện tử

Với website nhỏ có trang được crawl ngay ngày xuất bản, bạn hầu như không nhận ra. Nhưng trên website lớn hoặc thay đổi nhanh — catalog thương mại điện tử, tin tức, marketplace — crawl budget vốn đã là ràng buộc; một làn sóng 504 lúc cao tải có thể làm các trang thật sự cần được crawl lại không còn tài nguyên crawl. Ở quy mô lớn, timeout và crawl budget là cùng một cuộc thảo luận.

Thời gian phản hồi máy chủ và TTFB là đòn bẩy phòng ngừa mạnh — cho nguyên nhân phía origin

Điểm nhiều bài 504 bỏ qua: chờ lỗi xuất hiện rồi grep log là phản ứng bị động. Theo dõi liên tục thời gian phản hồi máy chủ để thấy xu hướng trượt trước khi chạm timeout mới là chủ động. Máy chủ hôm nay chậm nhưng chưa timeout có thể tạo 504 ngày mai khi tải tăng nhẹ hoặc dependency chậm hơn chút. Theo dõi TTFB (time to first byte) như tín hiệu cảnh báo sớm liên tục, không chỉ số liệu hậu kiểm, giúp phát hiện độ trượt đó.

Lưu ý: giám sát TTFB xử lý độ chậm phía origin. Nó không phát hiện CDN timeout với origin khỏe, load balancer cấu hình bỏ cuộc quá sớm hay vấn đề đường mạng giữa các hop; các trường hợp đó cần xác định hop phát lỗi trước. TTFB là cách sửa bền vững cho tình huống upstream thật sự chậm, không phải phương thuốc chung. Sau khi xác nhận origin là nút thắt, hãy tối ưu cache trang/object/CDN, truy vấn cơ sở dữ liệu và index, autoscaling theo tải cùng cấu hình upstream CDN hợp lý.

Vì sao “chỉ cần tăng timeout” là phản xạ sai

Tăng proxy_read_timeout hoặc timeout upstream của CDN có thể làm 504 không còn hiển thị, nhưng không khiến phản hồi upstream nhanh hơn. Tệ hơn, cửa sổ timeout dài khi tải cao khiến yêu cầu tích tụ và giữ worker/kết nối lâu hơn, có thể làm vòng xoáy quá tải trầm trọng. Thỉnh thoảng tăng timeout là đúng cho tác vụ dài đã hiểu rõ; dùng như phản xạ chỉ che giấu vấn đề thật.

Khi thời gian ngừng có kế hoạch hoặc bạn chủ động giảm tải, công cụ đúng không phải để trang trả 504; hãy trả 503 kèm header Retry-After để gửi công cụ tìm kiếm tín hiệu “hãy quay lại sau” rõ ràng, có chủ đích thay vì timeout lộn xộn.

Chẩn đoán 504 trong thực tế

Xác định hop phát lỗi trước khi đoán nguyên nhân — đây là khác biệt giữa sửa vấn đề thật và sửa triệu chứng:

  • Tái hiện và xác định hop trả lời. Mở trong trình duyệt; dùng curl và theo dõi time_starttransfer cho TTFB; chạy qua crawler như Ahrefs Site Audit hoặc Screaming Frog để biết lỗi toàn site hay cô lập. Nếu có thể, kiểm tra trực tiếp origin, bỏ qua CDN/proxy, để xem origin có hoàn tất không.
  • Đọc log. Log máy chủ và proxy cho biết tầng nào timeout và lý tưởng là do việc gì: truy vấn chậm, upstream mắc kẹt hay worker cạn. Đối chiếu timestamp và request ID giữa các tầng thay vì giả định.
  • Kiểm tra Search Console. Crawl Stats hiển thị đỉnh mã phản hồi và thời gian phản hồi trung bình; báo cáo Lập chỉ mục trang và Kiểm tra URL cho biết Google có gặp timeout hay không, gồm trạng thái “Hostload exceeded” (bản dịch) «tải máy chủ vượt ngưỡng».

Việc đối chiếu công cụ rất quan trọng: 504 trong trình duyệt, lỗi 5xx của Ahrefs Site Audit và timeout trong GSC có thể cùng mô tả một origin chậm nhìn từ các vị trí khác nhau. Đừng mặc định ba công cụ nghĩa là ba vấn đề.

Các mã liên quan

504 nằm trong một nhóm nhỏ. 500 là lỗi máy chủ chung khi không có mã cụ thể hơn; 502 là phản hồi upstream xấu/lỗi định dạng; 503 là trạng thái “không khả dụng” rõ ràng, thường có chủ đích. Xác định đúng mã đang trả — và chủ động trả mã đúng khi có thời gian ngừng theo kế hoạch — đã giải quyết một nửa vấn đề.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.