DNS RobotDNS Propagation Checker
Trang ChủDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Công cụ kiểm tra DNS thế hệ mới

Chính Sách Bảo MậtĐiều Khoản Dịch VụVề Chúng TôiBlogLiên hệ

Công Cụ DNS

Tra Cứu DNSTên Miền Sang IPTra Cứu NSTra Cứu MXTra Cứu CNAMEXem tất cả

Công Cụ Email

Kiểm Tra Bản Ghi SPFKiểm Tra DMARCKiểm Tra DKIMKiểm Tra SMTPPhân Tích Header EmailXem tất cả

Công Cụ Website

Tra Cứu WHOISKiểm Tra Tên MiềnTìm Tên Miền PhụPhát Hiện CMSPhân Tích Liên KếtXem tất cả

Công Cụ Mạng

Công Cụ PingTracerouteKiểm Tra CổngKiểm Tra Header HTTPKiểm Tra Chứng Chỉ SSLXem tất cả

Công Cụ IP

Tra Cứu IPIP Của Tôi Là GìKiểm Tra Danh Sách Đen IPIP Sang HostnameTra Cứu ASNXem tất cả

Công Cụ Tiện Ích

Quét Mã QRTạo Mã QRDịch Mã MorseChuyển Đổi Văn Bản Sang Nhị PhânTạo Chữ NhỏXem tất cả
© 2026 DNS Robot. Phát triển bởi: ❤ Shaik Brothers
Tất cả hệ thống hoạt động bình thường
Made with
Home/Blog/Lỗi 504 Gateway Timeout: Nguyên nhân và Cách khắc phục

Lỗi 504 Gateway Timeout: Nguyên nhân và Cách khắc phục

Shaik Vahid28 thg 2, 20269 min read
Hướng dẫn sửa lỗi 504 Gateway Timeout với chuỗi timeout giữa proxy và upstream server cùng các bước khắc phục
Hướng dẫn sửa lỗi 504 Gateway Timeout với chuỗi timeout giữa proxy và upstream server cùng các bước khắc phục

Key Takeaway

Lỗi 504 Gateway Timeout có nghĩa là máy chủ proxy hoặc gateway (như Nginx, Cloudflare hoặc load balancer) không nhận được phản hồi từ upstream server kịp thời. Nếu bạn là người truy cập, hãy đợi và tải lại trang. Nếu bạn là quản trị viên website, hãy kiểm tra tình trạng upstream server, tăng cài đặt timeout, tối ưu hóa script chậm và truy vấn cơ sở dữ liệu, đồng thời xem lại cấu hình CDN.

Lỗi 504 Gateway Timeout là gì?

504 Gateway Timeout là mã trạng thái HTTP cho biết máy chủ đang hoạt động như gateway hoặc proxy không nhận được phản hồi kịp thời từ upstream server. Proxy đã chờ upstream phản hồi, nhưng quá lâu nên proxy từ bỏ và trả về lỗi 504 cho trình duyệt của bạn.

Định nghĩa chính thức đến từ RFC 9110 (HTTP Semantics), Mục 15.6.5: "Mã trạng thái 504 (Gateway Timeout) cho biết máy chủ, khi hoạt động như gateway hoặc proxy, không nhận được phản hồi kịp thời từ upstream server mà nó cần truy cập để hoàn thành yêu cầu."

Từ khóa quan trọng là gateway. Lỗi 504 luôn liên quan đến ít nhất hai máy chủ: máy chủ bạn kết nối đến (proxy/gateway) và máy chủ phía sau nó (upstream/origin) đã không phản hồi. Các proxy phổ biến bao gồm Nginx reverse proxy, Cloudflare, AWS Application Load Balancer (ALB) và CloudFront.

Note

504 là lỗi 5xx phía máy chủ -- vấn đề nằm ở phía máy chủ, không phải trình duyệt hay thiết bị của bạn. Nếu bạn là người truy cập, kết nối internet của bạn hoàn toàn không có vấn đề gì.

Lỗi 504 trông như thế nào

Thông báo lỗi 504 khác nhau tùy thuộc vào trình duyệt, web server và CDN. Dưới đây là những thông báo phổ biến nhất bạn sẽ gặp.

  • 504 Gateway Timeout

  • 504 Gateway Time-out (Nginx mặc định -- có dấu gạch ngang)

  • HTTP Error 504 — Gateway Timeout

  • Trang này không hoạt động -- [tên miền] mất quá nhiều thời gian để phản hồi (Chrome / Edge)

  • Gateway Timeout (Firefox)

  • Error 504

  • 504 Gateway Time-out — The server didn't respond in time (Apache với mod_proxy)

  • Error 524: A timeout occurred (Riêng Cloudflare -- về mặt kỹ thuật không phải 504, nhưng cùng nguyên nhân gốc)

  • ERROR — The request could not be satisfied — 504 ERROR (AWS CloudFront)

Bất kể nội dung thông báo là gì, nguyên nhân cơ bản luôn giống nhau: proxy server đã chờ upstream server phản hồi và upstream server đã không phản hồi trong khoảng thời gian timeout được cấu hình.

Lỗi 504 Gateway Timeout xảy ra như thế nào

Để hiểu lỗi 504, bạn cần hiểu chuỗi timeout giữa trình duyệt và origin server. Một yêu cầu web thông thường đi qua nhiều lớp, và mỗi lớp có cài đặt timeout riêng.

Luồng yêu cầu điển hình: Trình duyệt → CDN (Cloudflare) → Load Balancer → Nginx → PHP-FPM → Cơ sở dữ liệu. Nếu truy vấn cơ sở dữ liệu mất 90 giây và proxy_read_timeout của Nginx được đặt là 60 giây, Nginx sẽ ngừng chờ và trả về 504 cho load balancer, rồi truyền lại cho trình duyệt của bạn.

Máy chủ trả về 504 luôn là máy chủ trung gian (proxy hoặc gateway), không bao giờ là origin server. Origin server đơn giản là không phản hồi kịp thời -- nó có thể vẫn đang xử lý yêu cầu, hoặc có thể đã bị crash hoàn toàn.

LớpTimeout mặc địnhĐiều gì xảy ra khi hết timeout
Cloudflare (Free/Pro)100 giâyTrả về Error 524 (mã riêng)
AWS CloudFront30 giâyTrả về 504 ERROR
AWS ALB60 giâyTrả về 504 với header awselb
GCP Load Balancer30 giâyTrả về 504
Nginx (proxy_read_timeout)60 giâyTrả về 504 Gateway Time-out
Apache (ProxyTimeout)60 giâyTrả về 504 Gateway Timeout
PHP max_execution_time30 giâyScript bị dừng, Nginx không nhận được phản hồi → 504

Nguyên nhân phổ biến của lỗi 504 Gateway Timeout

Hiểu rõ nguyên nhân gốc là con đường nhanh nhất để khắc phục. Dưới đây là những lý do phổ biến nhất khiến máy chủ trả về 504, được xếp theo tần suất xuất hiện.

  • Origin server chậm -- Script PHP chạy truy vấn cơ sở dữ liệu phức tạp, tạo báo cáo hoặc gọi API bên thứ ba chậm có thể vượt quá timeout của proxy. Đây là nguyên nhân số 1 gây lỗi 504.

  • Quá tải máy chủ -- CPU 100%, hết bộ nhớ (OOM kill), hoặc tất cả worker PHP-FPM đều bận. Origin server vẫn hoạt động nhưng quá tải để phản hồi kịp thời.

  • Tắc nghẽn cơ sở dữ liệu -- Truy vấn SQL chậm, thiếu index, khóa bảng hoặc cạn kiệt connection pool. Ứng dụng bị treo khi chờ cơ sở dữ liệu, và proxy hết thời gian chờ.

  • Cấu hình timeout sai -- proxy_read_timeout của Nginx được đặt quá thấp cho backend thực sự cần nhiều thời gian hơn (ví dụ: trình tạo báo cáo hoặc xử lý upload tệp).

  • Vấn đề mạng giữa proxy và origin -- Mất gói tin, độ trễ cao hoặc sự cố định tuyến giữa các data center. Phổ biến trong môi trường đa vùng hoặc hybrid cloud.

  • Firewall hoặc security group chặn lưu lượng -- AWS security group không cho phép lưu lượng trên cổng tạm thời, quy tắc iptables chặn kết nối nội bộ, hoặc WAF chặn các yêu cầu upstream hợp lệ.

  • DNS resolution thất bại tại proxy -- Proxy không thể phân giải hostname upstream. Trong Nginx, điều này xảy ra khi sử dụng biến trong proxy_pass mà không có chỉ thị resolver.

  • CDN timeout -- Cloudflare có giới hạn cứng 100 giây trên gói Free/Pro/Business. Nếu origin mất hơn 100 giây, Cloudflare trả về Error 524 bất kể cấu hình Nginx của bạn.

  • Tấn công DDoS -- Lượng lớn yêu cầu làm cạn kiệt tài nguyên máy chủ, khiến origin quá chậm để phản hồi lưu lượng hợp lệ trong thời gian timeout của proxy.

Cách khắc phục cho người truy cập

Nếu bạn thấy lỗi 504 trên trang web của người khác, vấn đề nằm ở phía máy chủ -- không phải thiết bị của bạn. Tuy nhiên, có một vài điều bạn có thể thử.

  • Đợi và tải lại -- Hầu hết lỗi 504 là tạm thời. Đợi 30-60 giây, sau đó tải lại cứng bằng Ctrl+Shift+R (Windows/Linux) hoặc Cmd+Shift+R (Mac).

  • Kiểm tra trang web có bị sập cho mọi người không -- Sử dụng công cụ HTTP Headers của DNS Robot để kiểm tra mã phản hồi của máy chủ từ vị trí bên ngoài. Nếu trả về 504 cho mọi người, vấn đề nằm ở phía máy chủ.

  • Thử chế độ ẩn danh hoặc trình duyệt khác -- Loại trừ tiện ích mở rộng trình duyệt, trang lỗi đã cache và các vấn đề cấu hình cục bộ.

  • Thử mạng khác -- Chuyển từ Wi-Fi sang dữ liệu di động, hoặc tắt VPN. Vấn đề định tuyến giữa ISP và máy chủ đôi khi có thể gây ra 504.

  • Xóa bộ nhớ đệm DNS -- Bản ghi DNS cũ có thể định tuyến yêu cầu đến sai máy chủ. Trên Windows: ipconfig /flushdns. Trên Mac: sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder.

  • Kiểm tra trang trạng thái hoặc mạng xã hội của trang web -- Có thể đã có thông báo về sự cố hoặc bảo trì đã biết.

Tip

Sử dụng công cụ Ping của DNS Robot để kiểm tra xem máy chủ có thể truy cập được không, và Port Checker để xác minh rằng cổng 80 và 443 đang mở. Nếu máy chủ không phản hồi ping hoặc các cổng bị đóng, vấn đề nghiêm trọng hơn một gateway timeout thông thường.

Cách 1: Tăng cài đặt Timeout (Nginx & Apache)

Cách sửa phổ biến nhất cho lỗi 504 là tăng giá trị timeout trên reverse proxy. Nếu backend thực sự cần hơn 60 giây (mặc định), proxy cần được cấu hình để chờ lâu hơn.

nginx
# Nginx — reverse proxy to a backend (Node.js, Python, etc.)
location / {
    proxy_pass http://backend;
    proxy_connect_timeout 300;
    proxy_send_timeout    300;
    proxy_read_timeout    300;
    send_timeout          300;
}

# Nginx — FastCGI (PHP-FPM)
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_read_timeout    300;
    fastcgi_send_timeout    300;
    fastcgi_connect_timeout 300;
    include fastcgi_params;
}

Warning

Tăng timeout là giải pháp tạm thời, không phải giải pháp lâu dài. Nếu backend thường xuyên mất hàng phút để phản hồi, giải pháp thực sự là tối ưu hóa backend -- không phải bắt proxy chờ lâu hơn.

Với Apache sử dụng mod_proxy, thêm ProxyTimeout 300 trong VirtualHost hoặc sử dụng ProxyPass / http://backend:8080/ timeout=300 cho cấu hình riêng từng backend.

Quan trọng: Các timeout này đo thời gian giữa hai thao tác đọc/ghi liên tiếp, không phải tổng thời gian truyền tải. proxy_read_timeout 300 có nghĩa là "nếu không có dữ liệu nào đến trong 300 giây", không phải "toàn bộ phản hồi phải hoàn thành trong 300 giây". Sau khi thay đổi giá trị timeout, hãy reload cấu hình: sudo nginx -t && sudo systemctl reload nginx.

Cách 2: Tối ưu hóa Script chậm và Truy vấn cơ sở dữ liệu

Nếu backend liên tục vượt quá timeout, việc tăng giá trị timeout chỉ che giấu vấn đề. Giải pháp thực sự là làm cho backend phản hồi nhanh hơn.

  • Tìm truy vấn chậm -- Bật slow query log của MySQL (slow_query_log = 1, long_query_time = 1) hoặc sử dụng EXPLAIN ANALYZE cho các truy vấn nghi ngờ. Thêm index bị thiếu, tránh SELECT * và phân trang cho tập kết quả lớn.

  • Thêm bộ nhớ đệm -- Sử dụng Redis hoặc Memcached để cache kết quả truy vấn tốn kém. Truy vấn mất 5 giây mỗi lần tải trang nên được cache.

  • Chuyển công việc nặng sang background job -- Tạo báo cáo, gửi email, xử lý hình ảnh và nhập dữ liệu nên chạy trong hàng đợi công việc (Celery, Sidekiq, Bull), không phải trong chu kỳ HTTP request.

  • Tối ưu hóa lời gọi API -- Nếu backend gọi API bên thứ ba chậm, thêm timeout cho các lời gọi đó và triển khai circuit breaker để một API chậm không chặn tất cả các yêu cầu.

  • Giảm truy vấn N+1 -- Truy vấn do ORM tạo ra thường tạo hàng trăm lời gọi cơ sở dữ liệu riêng lẻ. Sử dụng eager loading hoặc batch query để giảm số lượng round trip.

Cách 3: Kiểm tra tài nguyên máy chủ (CPU, RAM, Ổ đĩa)

Nếu origin server bị quá tải, nó không thể xử lý yêu cầu đủ nhanh và proxy hết thời gian chờ. Hãy kiểm tra xem thứ gì đang tiêu thụ tài nguyên.

bash
# Check CPU and memory usage
top -bn1 | head -20

# Check disk space (full disk = silent failures)
df -h

# Check memory details
free -m

# Find processes using the most CPU
ps aux --sort=-%cpu | head -10

# Find processes using the most memory
ps aux --sort=-%mem | head -10

# Check active network connections
ss -s

Nếu CPU hoặc RAM đạt 90% trở lên, bạn cần tối ưu hóa ứng dụng, dừng các tiến trình chạy quá mức hoặc nâng cấp máy chủ. Nếu ổ đĩa đầy, hãy xóa các tệp log cũ, bản sao lưu hoặc tệp tạm -- ổ đĩa đầy có thể làm crash cơ sở dữ liệu và gây ra lỗi 504 dây chuyền.

Cách 4: Kiểm tra nhật ký lỗi

Nhật ký lỗi cho bạn biết chính xác tại sao proxy trả về 504. Luôn kiểm tra log trước khi đoán nguyên nhân.

bash
# Nginx error log (look for "upstream timed out")
tail -50 /var/log/nginx/error.log

# Apache error log
tail -50 /var/log/apache2/error.log       # Debian/Ubuntu
tail -50 /var/log/httpd/error_log          # CentOS/RHEL

# PHP-FPM log
tail -50 /var/log/php8.2-fpm.log

# System log (OOM kills, crashes)
tail -50 /var/log/syslog

Các thông báo log phổ biến gây ra 504:

"upstream timed out (110: Connection timed out)" (Nginx) -- Upstream server không phản hồi trong proxy_read_timeout. Tăng timeout hoặc sửa upstream chậm.

"server reached pm.max_children" (PHP-FPM) -- Tất cả tiến trình worker PHP đều bận. Tăng pm.max_children trong cấu hình pool PHP-FPM.

"connect() failed (111: Connection refused)" (Nginx) -- Upstream server không chạy hoặc không lắng nghe trên cổng mong đợi. Khởi động lại backend.

"Too many connections" (MySQL) -- Giới hạn kết nối cơ sở dữ liệu đã cạn kiệt. Tăng max_connections trong cấu hình MySQL hoặc tối ưu connection pooling.

Cách 5: Điều chỉnh cài đặt PHP-FPM

Với các ứng dụng PHP (WordPress, Laravel, Magento), PHP-FPM thường là điểm tắc nghẽn. Chuỗi timeout phải nhất quán: Nginx timeout ≥ PHP-FPM timeout ≥ PHP max_execution_time.

Cài đặtTệpMặc địnhKhuyến nghị
max_execution_timephp.ini30 giây120-300 giây
request_terminate_timeoutCấu hình pool PHP-FPM0 (dùng max_execution_time)Bằng max_execution_time
pm.max_childrenCấu hình pool PHP-FPM5Dựa trên RAM: (Tổng RAM - 1GB) / 40MB
pm.max_requestsCấu hình pool PHP-FPM0 (không giới hạn)500-1000 (ngăn rò rỉ bộ nhớ)
fastcgi_read_timeoutnginx.conf60 giây≥ max_execution_time

Sau khi thay đổi cài đặt PHP-FPM, khởi động lại dịch vụ: sudo systemctl restart php8.2-fpm. Đảm bảo fastcgi_read_timeout của Nginx luôn lớn hơn hoặc bằng max_execution_time của PHP. Nếu không, Nginx sẽ từ bỏ trước khi PHP hoàn thành, tạo ra lỗi 504.

Cách 6: Kiểm tra cấu hình CDN và Proxy

Nếu trang web của bạn nằm sau CDN như Cloudflare hoặc AWS CloudFront, CDN có cài đặt timeout riêng có thể ghi đè cấu hình máy chủ của bạn.

CDN / ProxyTimeout mặc địnhTối đa có thể cấu hìnhGhi chú
Cloudflare Free100 giây100 giây (cố định)Trả về Error 524, không phải 504
Cloudflare Pro100 giây100 giây (cố định)Giống Free -- không thể tăng
Cloudflare Business100 giây100 giây (cố định)Cùng giới hạn áp dụng
Cloudflare Enterprise100 giây6,000 giâyCấu hình qua Cache Rules
AWS CloudFront30 giây180 giâyĐặt trong cài đặt origin của distribution
AWS ALB60 giâyCó thể cấu hìnhĐặt qua idle timeout
GCP Load Balancer30 giâyKhông có giới hạn thực tếĐặt qua backend service timeout

Người dùng Cloudflare: Nếu bạn đang dùng gói Free, Pro hoặc Business và origin mất hơn 100 giây, bạn sẽ luôn nhận Error 524. Các lựa chọn duy nhất là: tối ưu backend để phản hồi trong 100 giây, chuyển tác vụ chạy lâu sang background job, hoặc nâng cấp lên Enterprise.

Người dùng AWS CloudFront: Tăng origin response timeout trong cài đặt origin của distribution. Mặc định 30 giây thường quá thấp cho nội dung động.

Sử dụng công cụ HTTP Headers của DNS Robot để kiểm tra response header và xác định lớp nào đang trả về 504. Tìm các header như server: cloudflare, server: awselb/2.0, hoặc server: nginx để xác định proxy.

Cách 7: Giải pháp dành riêng cho WordPress

Trang WordPress đặc biệt dễ gặp lỗi 504 do plugin nặng, cơ sở dữ liệu phình to và giới hạn shared hosting. Dưới đây là các giải pháp nhắm mục tiêu cụ thể.

  • Xác định plugin chậm -- Tắt tất cả plugin, sau đó bật lại từng cái một. Nếu không thể truy cập wp-admin, đổi tên thư mục plugins qua SSH: mv wp-content/plugins wp-content/plugins_disabled. Sử dụng plugin Query Monitor để xác định truy vấn cơ sở dữ liệu chậm.

  • Tăng bộ nhớ PHP -- Thêm define('WP_MEMORY_LIMIT', '512M'); vào wp-config.php. Nhiều plugin cần hơn mức mặc định 128MB.

  • Cài đặt plugin caching -- WP Super Cache, W3 Total Cache hoặc WP Rocket giảm xử lý phía máy chủ bằng cách phục vụ HTML tĩnh thay vì chạy PHP cho mỗi yêu cầu.

  • Sử dụng object caching -- Cài đặt Redis hoặc Memcached và plugin WordPress object cache. Điều này cache kết quả truy vấn cơ sở dữ liệu trong bộ nhớ, giảm tải cho MySQL.

  • Dọn dẹp cơ sở dữ liệu -- Xóa các bản sửa đổi bài viết cũ, transient, bình luận spam và metadata mồ côi. Sử dụng WP-Optimize hoặc WP-Sweep. Thêm define('WP_POST_REVISIONS', 5); để giới hạn số bản sửa đổi trong tương lai.

  • Tắt wp-cron -- Cron ảo của WordPress chạy mỗi lần tải trang và có thể tích tụ các tác vụ. Thêm define('DISABLE_WP_CRON', true); vào wp-config.php và thiết lập cron job thực trên máy chủ: */5 * * * * curl -s https://yoursite.com/wp-cron.php > /dev/null 2>&1.

So sánh 504 với 502, 503 và 408: Sự khác biệt là gì?

Các mã lỗi HTTP này thường bị nhầm lẫn. Dưới đây là ý nghĩa thực sự của từng mã.

MãTênĐiều gì đã xảy raCần Proxy?
408Request TimeoutClient gửi yêu cầu đến máy chủ quá chậmKhông -- máy chủ timeout client
502Bad GatewayProxy nhận phản hồi không hợp lệ hoặc bị hỏng từ upstreamCó
503Service UnavailableMáy chủ bị quá tải hoặc đang bảo trì -- không thể xử lý yêu cầuKhông -- bất kỳ máy chủ nào cũng có thể trả về
504Gateway TimeoutProxy không nhận được phản hồi từ upstream trong thời gian timeoutCó
524A Timeout OccurredCloudflare kết nối được đến origin nhưng không nhận HTTP response trong 100 giâyChỉ Cloudflare (không chuẩn)

Sự khác biệt quan trọng: 502 nghĩa là proxy nhận được phản hồi sai, trong khi 504 nghĩa là proxy không nhận được phản hồi nào. 503 không cần proxy -- bất kỳ máy chủ nào cũng có thể trả về khi bị quá tải. 408 là timeout phía client (nhóm 4xx), khi máy chủ bỏ cuộc chờ client gửi yêu cầu.

Nếu bạn thấy 502 và 504 cùng lúc, upstream server có thể đang bị crash. Lỗi 502 xảy ra khi proxy nhận phản hồi một phần hoặc bị hỏng từ tiến trình đang chết, và 504 xảy ra khi tiến trình hoàn toàn không phản hồi.

Lỗi 504 có ảnh hưởng đến SEO không?

Câu trả lời ngắn: lỗi 504 ngắn hạn không ảnh hưởng SEO. Lỗi 504 kéo dài có thể dẫn đến việc bị xóa chỉ mục.

Vài phút đến vài giờ: Không ảnh hưởng. Google hiểu các lỗi máy chủ tạm thời và không phạt ngay lập tức. Nếu Googlebot không thu thập trong thời gian sự cố, nó sẽ không nhận ra.

Vài giờ đến vài ngày: Google giảm tần suất thu thập cho các trang web trả về lỗi 5xx để tránh tăng tải cho máy chủ đang gặp sự cố. Các trang có thể xuất hiện là "Server error (5xx)" trong báo cáo Page Indexing của Google Search Console.

Vài ngày đến vài tuần: Lỗi 504 kéo dài có thể dẫn đến xóa chỉ mục các trang bị ảnh hưởng. Thứ hạng giảm đáng kể. Theo John Mueller của Google: nếu máy chủ bị sập một ngày, tình hình có thể "bất ổn" trong một đến ba tuần sau khi phục hồi.

Phục hồi: Khi máy chủ ổn định trở lại, Google tự động thu thập lại và tái lập chỉ mục. Sử dụng công cụ URL Inspection trong Google Search Console để yêu cầu tái lập chỉ mục cho các trang quan trọng. Thời gian phục hồi phụ thuộc vào quy mô trang web và thời gian lỗi kéo dài.

Note

Lỗi 504 không kích hoạt hình phạt thủ công. Nó gây ra giảm tần suất thu thập tạm thời và có thể xóa chỉ mục -- cả hai đều có thể đảo ngược khi máy chủ ổn định. Yếu tố quan trọng là thời gian kéo dài, không phải tần suất.

Cách phòng ngừa lỗi 504 Gateway Timeout

Phòng bệnh hơn chữa bệnh. Các phương pháp tốt nhất dưới đây sẽ giúp máy chủ của bạn phản hồi trong giới hạn timeout.

  • Thiết lập giám sát -- Sử dụng giám sát uptime (UptimeRobot, Pingdom hoặc công cụ Ping của DNS Robot) để phát hiện lỗi 504 trước khi người dùng báo cáo.

  • Đồng bộ chuỗi timeout -- Đảm bảo CDN timeout ≥ proxy timeout ≥ application timeout. Giá trị không khớp gây ra lỗi 504 không thể dự đoán.

  • Triển khai health check -- Load balancer và proxy nên kiểm tra sức khỏe upstream server và chuyển hướng lưu lượng khỏi các instance không phản hồi.

  • Sử dụng caching tích cực -- Cache tài nguyên tĩnh, phản hồi API và truy vấn cơ sở dữ liệu. Phản hồi đã cache không bao giờ chậm đến mức gây ra 504.

  • Tự động mở rộng -- Sử dụng mở rộng ngang (thêm instance) để đột biến lưu lượng không làm quá tải một máy chủ duy nhất.

  • Chuyển công việc nặng ra ngoài -- Xử lý tệp, tạo báo cáo, gửi email và nhập dữ liệu hàng loạt nên chạy trong hàng đợi background job. Không bao giờ thực hiện công việc tốn kém bên trong HTTP request.

  • Giám sát truy vấn chậm -- Bật slow query logging trong MySQL/PostgreSQL. Thiết lập cảnh báo cho truy vấn vượt quá 1 giây.

  • Giữ cho các dependency khỏe mạnh -- Giám sát API bên thứ ba mà backend phụ thuộc. Thêm timeout và circuit breaker để một API chậm không gây ra lỗi 504 dây chuyền cho tất cả người dùng.

Kiểm tra phản hồi máy chủ của bạn

Sử dụng công cụ HTTP Headers của DNS Robot để kiểm tra mã trạng thái HTTP, response header và thời gian phản hồi -- giúp debug lỗi 504.

Try HTTP Headers Checker

Frequently Asked Questions

504 Gateway Timeout có nghĩa là máy chủ proxy hoặc gateway (như Nginx, Cloudflare hoặc load balancer) đã chờ upstream/origin server phản hồi, nhưng upstream server mất quá nhiều thời gian. Proxy từ bỏ và trả về lỗi 504 cho trình duyệt của bạn.

Related Tools

Http HeadersPingPort CheckerDns Lookup

Related Articles

Http Error 503Http Error 500Fix Dns Server Not Responding

Table of Contents

  • Lỗi 504 Gateway Timeout là gì?
  • Lỗi 504 trông như thế nào
  • Lỗi 504 Gateway Timeout xảy ra như thế nào
  • Nguyên nhân phổ biến của lỗi 504 Gateway Timeout
  • Cách khắc phục cho người truy cập
  • Cách 1: Tăng cài đặt Timeout (Nginx & Apache)
  • Cách 2: Tối ưu hóa Script chậm và Truy vấn cơ sở dữ liệu
  • Cách 3: Kiểm tra tài nguyên máy chủ (CPU, RAM, Ổ đĩa)
  • Cách 4: Kiểm tra nhật ký lỗi
  • Cách 5: Điều chỉnh cài đặt PHP-FPM
  • Cách 6: Kiểm tra cấu hình CDN và Proxy
  • Cách 7: Giải pháp dành riêng cho WordPress
  • So sánh 504 với 502, 503 và 408: Sự khác biệt là gì?
  • Lỗi 504 có ảnh hưởng đến SEO không?
  • Cách phòng ngừa lỗi 504 Gateway Timeout
  • FAQ