Các 504 Gateway Timeout lỗi là một trong những HTTP phổ biến nhất 5xx lỗi mà chủ sở hữu trang web và khách truy cập trang web phải đối mặt. Cho nhieu Blog WordPressnền tảng thương mại điện tử, biết cách sửa các lỗi máy chủ như thế này là rất quan trọng để giữ cho khách truy cập khó kiếm được truy cập vào các trang web của đối thủ cạnh tranh.

Vì lỗi 504 Gateway Timeout không cho bạn biết lý do tại sao nó xảy ra, nên thật khó để xác định nguyên nhân gây ra lỗi hết thời gian chờ của máy chủ. Bài viết này sẽ giúp bạn hiểu sâu về nó, tìm hiểu cách chẩn đoán nguyên nhân và sau đó khắc phục nó.

Sau khi thử tất cả các giải pháp khác nhau được đề cập trong bài đăng, trang web của bạn sẽ được khởi động và chạy ngay lập tức.

Nghe có vẻ thú vị? Hãy đi sâu vào!

Lỗi 504 Gateway Timeout là gì?

Mỗi khi bạn truy cập một trang web trong trình duyệt của mình, trình duyệt sẽ gửi một yêu cầu đến máy chủ web nơi lưu trữ trang web. Máy chủ xử lý yêu cầu và phản hồi với các tài nguyên được yêu cầu.

Illustration of how HTTP requests and responses work

Cách thức hoạt động của các yêu cầu và phản hồi HTTP

Phản hồi của máy chủ bao gồm một trong số nhiều mã trạng thái HTTP để cho biết trạng thái của phản hồi đối với trình duyệt. Nhưng không phải tất cả các mã trạng thái HTTP này đều là lỗi. Ví dụ, một 200 mã trạng thái OK có nghĩa là máy chủ đã xử lý yêu cầu thành công và "Mọi thứ đều ổn."

Các 5xx lớp mã trạng thái HTTP chỉ ra rằng có gì đó không ổn với máy chủ, máy chủ biết về điều đó và nó không thể thực hiện yêu cầu của khách hàng. Do đó, chúng còn được gọi là Lỗi máy chủ 5xx mã trạng thái.

Chính thức, năm mã trạng thái được chỉ định dưới lớp 5xx (500, 501, 502, 503, 504). Bạn cũng có thể gặp nhiều mã không chính thức (506, 507, 509, 520, Vân vân.).

Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) xác định Lỗi 504 Gateway Timeout như:

Mã trạng thái 504 (Gateway Timeout) chỉ ra rằng máy chủ, trong khi hoạt động như một cổng hoặc proxy, đã không nhận được phản hồi kịp thời từ một máy chủ ngược dòng mà nó cần truy cập để hoàn thành yêu cầu.

Để đơn giản hóa hơn nữa, lỗi này xảy ra khi hai máy chủ tham gia xử lý một yêu cầu và máy chủ đầu tiên (thường là máy chủ chính) hết thời gian chờ phản hồi từ máy chủ thứ hai (máy chủ ngược dòng).

Lỗi 504 Gateway Timeout biểu hiện ở nhiều dạng khác nhau. Dưới đây là một số cách nó thường hiển thị:

The HTTP ERROR 504 in Chrome browser

'HTTP ERROR 504' trong trình duyệt Chrome

Lỗi 504 Gateway Timeout tương tự như lỗi Lỗi 502 Bad Gateway, chỉ ra rằng máy chủ đầu tiên nhận được phản hồi không hợp lệ từ máy chủ thứ hai (máy chủ ngược dòng).

504 GATEWAY TIMEOUT status code in Chrome DevTools

Mã trạng thái '504 GATEWAY TIMEOUT' trong Chrome DevTools

Các biến thể của lỗi 504 Gateway Timeout

Trình duyệt hiển thị bất kỳ lỗi 504 Gateway Timeout nào bên trong nó, giống như bất kỳ lỗi nào khác. Vì tồn tại nhiều hệ điều hành, máy chủ web, trình duyệt và tác nhân người dùng, nó có thể hiển thị theo nhiều cách.

Dưới đây là một số biến thể thông báo lỗi 504 phổ biến mà bạn có thể gặp phải:

  • 504 Gateway Timeout
  • 504 Gateway Timeout NGINX
  • Thời gian chờ cổng NGINX 504
  • Lỗi thời gian chờ cổng
  • Lỗi 504
  • Lỗi HTTP 504
  • Lỗi HTTP 504 - Hết thời gian chờ cổng
  • HTTP 504
  • Lỗi 504
  • Thời gian chờ của cổng (504)
  • Trang này không hoạt động - Miền mất quá nhiều thời gian để phản hồi
  • 504 Gateway Time-out - Máy chủ không phản hồi kịp thời
  • Màn hình trắng trống

Tất cả các phản hồi lỗi ở trên, mặc dù được diễn đạt khác nhau, đều trỏ đến cùng một lỗi máy chủ 504 Gateway Timeout.

Máy chủ web và trang web có thể tùy chỉnh cách chúng hiển thị lỗi 504 Gateway Timeout cho người dùng. Một số trong số họ có thể được mát mẻ! Đó là một chiến thuật tuyệt vời để dập tắt sự thất vọng của đội khách.

GitHub’s customized HTTP 504 error page

Trang lỗi HTTP 504 tùy chỉnh của GitHub

Tác động SEO của lỗi 504 Gateway Timeout

Tất cả các lỗi 5xx đều ngăn không cho trang web tải, gây bất lợi cho trải nghiệm người dùng. Vì thế, công cụ tìm kiếm như Google xem xét những lỗi này một cách nghiêm túc. Nếu lỗi vẫn tồn tại trong một thời gian dài, nó thậm chí có thể dẫn đến việc hủy lập chỉ mục trang web khỏi kết quả của công cụ tìm kiếm.

Ví dụ: khi các trình thu thập thông tin của Google tình cờ gặp Lỗi 503: Dịch vụ không khả dụng lỗi, họ sẽ hiểu rằng đó là vấn đề tạm thời vì nó thường được sử dụng để bật chế độ bảo trì trang web. Do đó, họ sẽ cố gắng thu thập dữ liệu lại trang sau.

Lỗi 504 Gateway Timeout không nhất thiết là tạm thời vì nó có thể do nhiều nguyên nhân. Nếu trang web của bạn bị lỗi chỉ trong vài phút và nếu các trình thu thập thông tin đang cố gắng thu thập dữ liệu đó nhiều lần mỗi phút, chúng sẽ cố gắng phục vụ trang từ bộ nhớ cache của chúng. Họ thậm chí sẽ không nhận thấy nó.

Nhưng nếu trang web của bạn ngừng hoạt động trong hơn 6 giờ trở lên, thì Google sẽ coi lỗi 504 là một vấn đề nghiêm trọng trên toàn trang web mà bạn cần khắc phục càng sớm càng tốt. Điều này có thể ảnh hưởng tiêu cực đến SEO của bạn.

Viewing the crawl errors in Google Search Console

Xem lỗi thu thập thông tin trong Google Search Console

Google Search Console là một trong những công cụ SEO tốt nhất để theo dõi lỗi HTTP 5xx của trang web của bạn.

Nguyên nhân của lỗi 504 Gateway Timeout

Vì lỗi 504 là do hết thời gian chờ giữa các máy chủ, vấn đề có thể không phải do thiết bị của khách hàng hoặc kết nối internet. Điều đó cũng bao gồm thiết bị và kết nối của bạn.

Lỗi 504 Gateway Timeout chỉ ra rằng máy chủ web đang đợi phản hồi từ một máy chủ khác quá lâu và “hết thời gian chờ”. Có thể có nhiều lý do cho thời gian chờ này: máy chủ khác không hoạt động bình thường, quá tải hoặc ngừng hoạt động.

Máy chủ khác không phải lúc nào cũng là máy chủ bên ngoài (ví dụ: CDN, Cổng API). Nó cũng có thể là một thực thể giống như máy chủ trong máy chủ web chính (ví dụ: máy chủ proxy ngược, máy chủ cơ sở dữ liệu).

Cách sửa lỗi 504 Gateway Timeout

Nếu không biết chi tiết chính xác về trang WordPress như cấu hình máy chủ của nó, kế hoạch lưu trữ, các plugin của bên thứ ba và giao thông nó thu hút, bạn có thể thấy bực bội và quá tải khi sửa lỗi 504 Gateway Timeout.

Vì có nhiều biến số liên quan, tôi khuyên bạn nên bắt đầu bằng cách khắc phục các sự cố phía máy khách, khá hiếm gặp, sau đó chuyển sang sửa các sự cố phía máy chủ, thường là thủ phạm gây ra lỗi 504.

Thử tải lại trang web

Một trong những điều đầu tiên bạn có thể thử khi gặp lỗi 504 Gateway Timeout là đợi một vài phút và thử tải lại trang.

Bạn có thể nhấn F5 phím tắt để làm mới / tải lại trang web trong hầu hết các trình duyệt. Để xóa trang bộ nhớ cache của trình duyệt trước khi tải lại, bạn có thể nhấn CTRL + F5 tổ hợp phím tắt thay thế.

Refreshing a webpage in Chrome browser

Làm mới trang web trong trình duyệt Chrome

Khi đang ở đó, bạn cũng có thể thử tải trang web trong một trình duyệt khác để loại trừ đó là sự cố. Vì hầu hết các lỗi 504 là do máy chủ tạm thời bị quá tải, việc sử dụng giải pháp này sẽ khiến trang web của bạn hoạt động trở lại ngay lập tức.

Nếu việc chờ và tải lại trang web không khắc phục được sự cố lỗi 504, bạn có thể kiểm tra xem trang web đó có hoạt động đối với tất cả mọi người hay chỉ bạn. Hai công cụ trực tuyến tuyệt vời để kiểm tra một trang web về thời gian chết là Xuống cho mọi người hoặc chỉ cho tôiNó có xuống ngay bây giờ không?

Testing Kinsta.com on Down for Everyone or Just Me

Thử nghiệm Kinsta.com trên Down dành cho Mọi người hoặc Chỉ Tôi

Khởi động lại thiết bị mạng của bạn

Đôi khi, sự cố với các thiết bị mạng của bạn như modem hoặc bộ định tuyến có thể dẫn đến lỗi 504 Gateway Timeout. Khởi động lại các thiết bị này có thể giúp bạn khắc phục sự cố.

Mặc dù bạn có thể tắt tất cả các thiết bị mạng này theo bất kỳ thứ tự nào, nhưng thứ tự bật lại chúng là rất quan trọng. Thông thường, bật các thiết bị này từ "bên ngoài", theo thứ tự kết nối từ nhà cung cấp dịch vụ internet đến thiết bị khách chính của bạn.

Kiểm tra cài đặt proxy của bạn

Một máy chủ proxy nằm giữa thiết bị của bạn và Internet. Nó chủ yếu được sử dụng để tăng cường quyền riêng tư trực tuyến bằng cách ẩn thông tin cá nhân (ví dụ: vị trí thiết bị) khỏi các trang web và máy chủ web (ví dụ: sử dụng VPN).

Mặc dù hiếm khi máy chủ proxy gây ra lỗi 504, nhưng cài đặt máy chủ proxy không chính xác đôi khi có thể là lý do. Bạn có thể tắt máy chủ proxy và thử tải lại trang web để xem liệu nó có khắc phục được lỗi hay không.

Changing the ‘Proxy’ settings in Windows 10

Thay đổi cài đặt 'Proxy' trong Windows 10

Hầu hết các máy khách không sử dụng dịch vụ proxy, vì vậy bạn có thể bỏ qua bước này nếu bạn tự tin rằng mình không sử dụng bất kỳ máy chủ proxy nào. Tuy nhiên, bạn có thể đã thiết lập nó mà bạn thậm chí không biết về nó. Tôi khuyên bạn nên kiểm tra cài đặt proxy của thiết bị và trình duyệt của mình để loại trừ nguyên nhân này.

Sự cố DNS

Lỗi 504 Gateway Timeout cũng có thể do sự cố DNS ở phía máy chủ hoặc phía máy khách (hoặc cả hai).

Lý do có thể xảy ra nhất cho sự cố DNS phía máy chủ là FQDN (tên miền đủ điều kiện) không phân giải thành địa chỉ IP chính xác. Thông thường, điều này xảy ra khi bạn vừa di chuyển trang web WordPress của mình sang một máy chủ hoặc máy chủ mới. Do đó, điều quan trọng là phải đợi miền Bản ghi DNS để phổ biến đầy đủ, có thể mất đến 24 giờ.

Bạn có thể sử dụng các công cụ miễn phí như whatsmydns.net Trình kiểm tra DNS hoặc là DNSMap để xem liệu DNS của bạn có phổ biến trên toàn cầu hay không.

Checking DNS propagation for your domain on whatsmydns.net

Kiểm tra quá trình lan truyền DNS cho miền của bạn trên whatsmydns.net

Để khắc phục sự cố DNS phía máy khách, bạn có thể thử xóa bộ nhớ cache DNS cục bộ của bạn. Nó giống như xóa bộ nhớ cache của trình duyệt, ngoại trừ ở đây bạn đang xóa bộ nhớ cache DNS khỏi hệ điều hành.

Nếu đang sử dụng Windows, bạn có thể xóa bộ nhớ cache DNS bằng cách mở Command Prompt và nhập lệnh sau:

ipconfig / flushdns
Flushing the DNS Cache with Command Prompt

Xóa DNS Cache bằng Command Prompt trong Windows

Bạn sẽ thấy thông báo “Đã xóa thành công Bộ đệm ẩn của trình phân giải DNS”. thông báo nếu nó hoạt động.

Đối với các phiên bản macOS mới nhất, bạn có thể mở Terminal và chạy lệnh sau:

sudo killall -HUP mDNSResponder

Bạn sẽ không thấy bất kỳ thông báo nào trong macOS khi quá trình kết thúc, nhưng bạn có thể thay đổi điều đó bằng cách thêm lệnh với thông báo tùy chỉnh của mình.

sudo killall -HUP mDNSResponder; DNS Cache đã được xóa thành công

Nếu bạn đang sử dụng các phiên bản macOS cũ hơn, lệnh bạn cần nhập sẽ thay đổi dựa trên phiên bản macOS bạn đang chạy. Để biết thêm chi tiết, bạn có thể tham khảo phần macOS trong DNS xóa chuyên sâu của Kinsta hướng dẫn.

Nếu bạn đang sử dụng hệ điều hành Linux, thì quá trình này khá giống với macOS vì ngay cả Linux cũng sử dụng Terminal làm giao diện dòng lệnh. Vì có nhiều bản phân phối của Linux, lệnh chính xác bạn cần chạy có thể khác nhau giữa các bản phân phối này. Bạn có thể xem hướng dẫn của Kinsta để biết thêm thông tin.

Cuối cùng, bạn có thể tạm thời thay đổi máy chủ DNS phía máy khách của mình. Theo mặc định, ISP của bạn sẽ tự động gán các máy chủ DNS cho bạn. Nhưng bạn có thể tạm thời thay đổi chúng thành các IP DNS công cộng.

Một số địa chỉ đáng tin cậy mà bạn có thể thử là DNS công cộng của Google, Cloudflare 1.1.1.1, DNS Quad9Cisco OpenDNS.

Settings custom DNS servers in Windows 10

Cài đặt máy chủ DNS tùy chỉnh trong Windows 10

Tạm thời vô hiệu hóa CDN của trang web của bạn

Đôi khi, vấn đề cũng có thể xảy ra với mạng phân phối nội dung (CDN). Nếu máy chủ gốc của một trang web không thể truy cập được, hầu hết các CDN sẽ cố gắng cung cấp trang web đầy đủ từ bộ nhớ cache của chúng.

Nhưng hầu hết các CDN không bật tính năng này theo mặc định vì nó phức tạp để lưu nội dung động vào bộ nhớ cache trên hầu hết các trang web (ví dụ: Bảng điều khiển quản trị WordPress).

Setting the ‘Cache Everything’ page rule in Cloudflare

Đặt quy tắc trang 'Cache Everything' trong Cloudflare

Một cách đơn giản để khắc phục sự cố này là tạm thời tắt CDN của bạn. Ví dụ: nếu bạn đang sử dụng CDN Enabler Plugin WordPress để liên kết nội dung trang web của bạn với URL CDN, sau đó bạn có thể hủy kích hoạt plugin và kiểm tra tải lại trang web của mình.

Tương tự với việc sử dụng bất kỳ plugin nào khác mà bạn có thể sử dụng để kết nối với CDN của mình (ví dụ: WP Rocket, Breeze, Tổng bộ nhớ đệm W3).

Nếu bạn không thể truy cập bảng điều khiển quản trị trang web của mình, bạn có thể tắt plugin thông qua SFTP bằng cách đổi tên thư mục của plugin.

Disable all plugins via SFTP by renaming the plugins folder name

Tắt tất cả các plugin qua SFTP bằng cách đổi tên tên thư mục plugin

CDN thích Cloudflare hoặc là Sucuri cung cấp dịch vụ proxy đầy đủ có thêm tường lửa giữa máy chủ biên của họ và máy chủ gốc của bạn. Do đó, bạn có thể gặp phải lỗi HTTP 5xx thường xuyên hơn khi sử dụng chúng. Hầu hết trong số họ lỗi bộ nhớ cache 5xx do máy chủ gốc của bạn trả về, vì vậy thật dễ dàng để gỡ rối chúng.

Gói miễn phí của Cloudflare dễ gặp lỗi 5xx. Thật không may, vì nó là một dịch vụ proxy đầy đủ, không có cách nào nhanh chóng để tắt nó. Nhưng trước khi bạn đổ lỗi cho Cloudflare về điều đó, hãy biết rằng Cloudflare cho thấy hai biến thể của lỗi 504 Gateway Timeout.

504 Gateway Timeout at Cloudflare (Biến thể 1)

Cloudflare sẽ hiển thị cho bạn màn hình lỗi 504 Gateway Timeout tùy chỉnh khi máy chủ gốc của trang web của bạn phản hồi với phản hồi HTTP 504 tiêu chuẩn.

Cloudflare’s custom Error 504 screen

Màn hình Lỗi 504 tùy chỉnh của Cloudflare

Ở đây, vấn đề nằm ở máy chủ web của bạn chứ không phải Cloudflare. Bạn có thể thử sửa nó bằng các giải pháp khác được đề cập bên dưới hoặc liên hệ với hỗ trợ của nhà cung cấp dịch vụ lưu trữ để được trợ giúp kỹ thuật.

504 Gateway Timeout at Cloudflare (Biến thể 2)

Nếu Cloudflare gây ra lỗi 504 Gateway Timeout, màn hình lỗi sẽ đề cập đến “cloudflare”, hiện là tên máy chủ tiêu chuẩn cho tất cả nội dung Cloudflare. Thông thường, màn hình lỗi sẽ xuất hiện như sau:

504 Gateway Timeout error caused by Cloudflare

Màn hình lỗi cho 504 Gateway Timeout do Cloudflare gây ra

Vì bản thân Cloudflare không phản hồi, bạn sẽ không thấy bất kỳ màn hình lỗi nào mang nhãn hiệu Cloudflare ở đây.

Nhiều khả năng Cloudflare đã biết về vấn đề này và đang tìm cách khắc phục. Bạn có thể xác nhận điều này bằng cách kiểm tra Trạng thái hệ thống Cloudflare trang web. Ngoài ra, bạn có thể liên hệ với bộ phận hỗ trợ của Cloudflare để giải quyết nhanh hơn.

Check Cloudflare System Status at cloudflarestatus.com

Kiểm tra Trạng thái Hệ thống Cloudflare tại cloudflposeatus.com

504 Gateway Timeout tại Cloudflare do tải lên lớn

Các kích thước tải lên trang web của bạn cũng có thể là một lý do khiến máy chủ hết thời gian chờ. Cloudflare giới hạn kích thước tệp tải lên (theo yêu cầu HTTP POST) chỉ 100 MB trên cả gói Miễn phí và Pro.

Cloudflare’s ‘Maximum Upload Size’ limits for various plans

Giới hạn 'Kích thước tải lên tối đa' của Cloudflare cho các gói khác nhau

Vấn đề có thể do máy chủ lưu trữ của bạn hoặc Cloudflare. Bạn có thể tìm ra nguyên nhân chính xác bằng cách bỏ qua Cloudflare với Tệp máy chủ DNS và thử tải lên lại.

Nếu bạn đang sử dụng Cloudflare với WordPress, tôi khuyên bạn nên sử dụng plugin miễn phíloại trừ các URL quan trọng khỏi bộ nhớ đệm (chẳng hạn như bảng điều khiển quản trị WordPress). Bạn có thể tham khảo bài viết chi tiết của Kinsta trên cách định cấu hình cài đặt Cloudflare cho WordPress.

Cách đọc được đề nghị: Cách thiết lập Cloudflare APO cho WordPress.

Sự cố máy chủ (Kiểm tra với máy chủ của bạn)

Sự cố máy chủ là một trong những lý do phổ biến nhất khiến bạn gặp phải lỗi 504 Gateway Timeout. Vì hầu hết các trang web WordPress được lưu trữ trên Nginx hoặc là Apache máy chủ web, có nghĩa là Nginx hoặc Apache đang đợi phản hồi từ một thứ gì đó và hết thời gian.

Nhiều khách hàng đến với Kinsta vì chính xác vấn đề này mà họ đang gặp phải ở các máy chủ WordPress khác. Cuộc trò chuyện diễn ra như sau:

Chúng tôi nhận được khoảng 100k khách truy cập mỗi tháng với hơn 200k lượt xem. Hiện tại, chúng tôi đang lưu trữ với ____ và chúng tôi liên tục gặp lỗi 504 do máy chủ quá tải. Tôi không thích cách ____ xử lý vấn đề và chúng tôi cũng được khuyên rằng chúng tôi sẽ sớm chuyển sang các kế hoạch chuyên dụng của họ, điều mà tôi tin là không cần thiết.

Lưu lượng truy cập cao và trang web thương mại điện tử dễ bị lỗi 504 hơn do máy chủ quá tải vì chúng tạo ra nhiều yêu cầu không thể lưu vào bộ nhớ cache. Tuy nhiên, vấn đề này có thể xảy ra với bất kỳ trang web nào, bao gồm cả blog. Nhiều máy chủ sẽ yêu cầu bạn nâng cấp lên gói cấp cao để khắc phục sự cố, điều này trong hầu hết các trường hợp là không cần thiết.

Kinsta sử dụng Máy chủ được quản lý LXD và vùng chứa phần mềm LXC được sắp xếp cho mỗi trang web. Do đó, mọi trang web WordPress đều được đặt trong vùng chứa riêng biệt với quyền truy cập vào tất cả phần mềm cần thiết để chạy nó (Linux, Nginx, PHP, MySQL). Các tài nguyên là 100% riêng tư và không được chia sẻ với bất kỳ trang web nào khác, ngay cả các trang web của bạn.

Hầu hết các máy chủ WordPress cung cấp gói lưu trữ chia sẻ không có khả năng này. Do đó, một trang web có lưu lượng truy cập cao được lưu trữ trên cùng một máy chủ với máy chủ của bạn cũng có thể khiến trang web của bạn gặp lỗi 504.

Ngoài việc cô lập từng trang web trong vùng chứa của mình, Kinsta cũng đã thiết kế cơ sở hạ tầng của mình để dễ dàng xử lý hàng nghìn kết nối đồng thời. Kinsta thậm chí còn lưu trữ cơ sở dữ liệu MySQL tại localhost, không phải là một máy chủ từ xa. Điều này có nghĩa là không có độ trễ giữa các máy, dẫn đến truy vấn nhanh hơn và ít cơ hội xảy ra hết thời gian hơn.

Nhiều khách hàng di cư đến Kinsta thấy rất lớn giảm thời gian tải tổng thể.

A 212.5% increase in performance after switching to C2.

Hiệu suất tăng 212,5% sau khi chuyển sang C2.

Máy chủ quá tải không phải là nguyên nhân duy nhất khiến máy chủ hết thời gian chờ. Có thể có nhiều lý do khác cho lỗi 504:

Cơ sở hạ tầng máy chủ chậm

Máy chủ bạn sử dụng để lưu trữ trang web WordPress của mình có thể không có đủ tài nguyên để xử lý tải. Nó giống như chơi một trò chơi điện tử hiện đại, đồ họa chuyên sâu trên một chiếc PC có tuổi đời hàng thập kỷ.

Máy chủ bị treo khi cố gắng phục vụ trang web. Giải pháp duy nhất cho vấn đề này là nâng cấp lên một máy chủ có cơ sở hạ tầng tốt hơn. Vì lý do này, ngay cả gói lưu trữ WordPress cơ bản nhất của Kinsta cũng sẽ xử lý một trang web tĩnh với lưu lượng truy cập trung bình.

Cần thêm nhân viên PHP

Công nhân PHP được sử dụng để thực thi mã trên trang web WordPress của bạn. Một trang web thương mại điện tử có 50.000 người truy cập mỗi tháng cần nhiều tài nguyên hơn một blog đơn giản với cùng một lượng truy cập. Nếu tất cả nhân viên PHP của máy chủ bận, họ sẽ tạo ra một hàng đợi.

Khi hàng đợi quá lớn, máy chủ sẽ bỏ qua các yêu cầu cũ, điều này có thể khiến máy chủ gặp lỗi cổng 504. Bạn có thể hỏi máy chủ của bạn về việc tăng số lượng nhân viên PHP của bạn. Điều này sẽ cho phép trang web của bạn thực hiện nhiều yêu cầu đồng thời.

Sự cố về tường lửa

Tường lửa của máy chủ của bạn có thể có một số lỗi hoặc cấu hình không đúng. Có lẽ, một số quy tắc của nó ngăn máy chủ thiết lập kết nối đúng cách. Để biết nếu tường lửa của bạn là thủ phạm, bạn có thể kiểm tra máy chủ của mình nhật ký lỗi.

Sự cố kết nối mạng

Sự cố kết nối giữa máy chủ proxy và máy chủ web có thể gây ra sự chậm trễ trong việc phản hồi các yêu cầu HTTP. Nếu bạn sử dụng bộ cân bằng tải, cũng có thể xảy ra sự cố kết nối mạng với nó.

Hết thời gian chờ HTTP

Hết thời gian chờ HTTP có thể xảy ra khi kết nối giữa máy chủ web và máy khách được mở quá lâu. Với các trang web WordPress, điều này thường xảy ra khi chạy Nhập WordPress. Một cách để giải quyết vấn đề này là chuyển sang kết nối internet nhanh hơn.

Bạn cũng có thể sử dụng một công cụ hỗ trợ WP-CLI để chạy các tập lệnh trực tiếp trên máy chủ, bỏ qua hoàn toàn kết nối HTTP. Ví dụ, bạn có thể sử dụng wp nhập lệnh WP-CLI để chạy plugin WordPress Importer trực tiếp thông qua giao diện dòng lệnh.

Quan trọng: Lỗi 504 Gateway Timeout trông tương tự như 503 Lỗi dịch vụ không khả dụng hoặc là 502 lỗi cổng xấu. Nhưng tất cả đều khác nhau. Nếu bạn đang gặp lỗi 504 tại Kinsta, mở một phiếu hỗ trợ để khắc phục sự cố của bạn ngay lập tức.

Để tự theo dõi thời gian ngừng hoạt động của trang web, bạn có thể sử dụng một công cụ như updown.io. Nó sẽ kiểm tra trạng thái trang web của bạn (hoặc bất kỳ URL nào) định kỳ bằng cách gửi một yêu cầu HTTP đến nó. Bạn có thể đặt tần suất kiểm tra từ 15 giây đến 1 giờ. Nếu trang web của bạn không phản hồi chính xác, nó sẽ thông báo cho bạn bằng email hoặc SMS.

Monitor your website with updown.io

Giám sát trang web của bạn dễ dàng với updown.io

Bạn sẽ nhận được một lượng lớn các khoản tín dụng miễn phí với mọi tài khoản của updown.io, nhưng nếu bạn đang tìm kiếm các lựa chọn thay thế rẻ hơn, bạn có thể kiểm tra WebGazer hoặc là Thời gian hoạt độngRobot. Cả hai công cụ này sẽ giúp bạn theo dõi thời gian hoạt động của trang web của mình 5 phút một lần, miễn phí. Đó là đủ tốt cho hầu hết các chủ sở hữu trang web.

WebGazer website monitoring tool's dashboard

Bảng điều khiển của công cụ giám sát trang web WebGazer

Theo dõi trang web của bạn sẽ cung cấp cho bạn ý tưởng về mức độ thường xuyên của nó. Điều này đặc biệt hữu ích nếu bạn đang sử dụng nhà cung cấp dịch vụ lưu trữ được chia sẻ. Hầu hết các máy chủ WordPress được quản lý sẽ tự động xử lý việc này cho bạn, do đó, bạn nên sử dụng chúng.

Để có lời giải thích chi tiết, hãy xem bài đăng của Kinsta trên tầm quan trọng của lưu trữ WordPress được quản lý.

Spam, Bots hoặc Tấn công DDoS

Những kẻ tấn công độc hại có thể đưa máy chủ web của bạn thu thập thông tin bằng cách gửi quá nhiều yêu cầu hoặc bằng cách gửi các yêu cầu sử dụng nhiều tài nguyên. Nếu trang web của bạn đang bị bot spam hoặc trải qua Tấn công DDoS, nó có thể làm tràn ngập máy chủ của bạn và dẫn đến lỗi 504 Gateway Timeout cho nhiều người dùng chính hãng.

Bạn có thể xem xét lưu lượng máy chủ và số liệu phân tích để xem liệu bạn có thể phát hiện ra bất kỳ mẫu bất thường nào trong lưu lượng truy cập trang web hay không. Nếu bạn đang sử dụng Kinsta để lưu trữ trang web của mình, bạn có thể xem dữ liệu này dễ dàng bằng cách truy cập Bảng điều khiển MyKinsta Analytics.

MyKinsta Analytics dashboard

Bảng điều khiển MyKinsta Analytics

Bắt đầu điều tra của bạn bằng cách xem các IP khách hàng đầu. Nó sẽ cung cấp cho bạn ý tưởng về ai đang tạo ra số lượng yêu cầu tối đa và từ đâu. Nếu máy chủ của bạn đột nhiên sử dụng hết băng thông lớn hoặc thu hút nhiều lưu lượng truy cập, thì báo cáo này sẽ rất hữu ích.

Viewing ‘Top Client IPs’ in MyKinsta dashboard

Xem 'IP của khách hàng hàng đầu' trong bảng điều khiển MyKinsta

Tiếp theo, bạn có thể kiểm tra Phân tích bộ nhớ đệm báo cáo. Tại đây, bạn có thể xem có bao nhiêu yêu cầu đang bỏ qua hoặc thiếu bộ nhớ cache, hoặc đang được cung cấp từ bộ nhớ cache. Vì lý do hiệu suất và độ ổn định, bạn muốn lưu vào bộ nhớ cache càng nhiều yêu cầu càng tốt, nhưng không phải lúc nào bạn cũng có thể đạt được điều đó.

Ví dụ, Các trang web WooCommerce tạo ra rất nhiều yêu cầu không thể lưu vào bộ nhớ cache đối với các tính năng như giỏ hàng và quy trình thanh toán.

The ‘Cache Analysis’ screen in MyKinsta

Màn hình 'Phân tích bộ nhớ cache' trong MyKinsta

Cuối cùng, bạn có thể sử dụng Plugin bảo mật WordPress để tăng cường bảo mật cho trang web của bạn bằng cách phát hiện và chặn lưu lượng truy cập / IP đáng lo ngại. Bạn có thể yêu cầu máy chủ của bạn chặn các IP nhất định quá.

Bạn đang vật lộn với các vấn đề về thời gian chết và WordPress? Kinsta là giải pháp lưu trữ được thiết kế chú trọng đến hiệu suất và bảo mật! Kiểm tra các kế hoạch của chúng tôi

Tùy thuộc vào độ dài và quy mô của cuộc tấn công, đây có thể là một quá trình đưa các IP vào danh sách đen không bao giờ kết thúc vì nhiều kẻ tấn công thay đổi IP và địa chỉ proxy của họ sau khi bị chặn.

Ghi chú: Kinsta không cho phép khách hàng của mình cài đặt các plugin bảo mật WordPress vì chúng có thể ảnh hưởng rất lớn đến hiệu suất của trang web, đặc biệt là khả năng quét của nó. Vì Kinsta sử dụng bộ cân bằng tải với Nền tảng đám mây của Google, chặn IP không phải lúc nào cũng hoạt động như dự định.

Bạn có thể sử dụng các giải pháp bảo mật chuyên dụng như Cloudflare hoặc Sucuri để bảo vệ trang web của mình khỏi các cuộc tấn công DDoS và chương trình thư rác. Để biết thêm, bạn có thể xem các bài viết của Kinsta trên cách cài đặt Cloudflare trên trang web WordPress của bạn và cách Sucuri đã giúp ngăn chặn một cuộc tấn công DDoS theo dõi của nó.

Cơ sở dữ liệu WordPress bị hỏng

Đôi khi, lỗi 504 Gateway Timeout có thể do bị hỏng cơ sở dữ liệu, đặc biệt là trong các trang web WordPress. Thông thường, điều này là do các bảng hoặc tệp cơ sở dữ liệu bị hỏng. Đôi khi, nó cũng có thể do vấn đề bảo mật nghiêm trọng như trang web hoặc cơ sở dữ liệu của bạn bị tấn công.

Việc sửa chữa cơ sở dữ liệu WordPress bị hỏng tùy thuộc vào sự cố. Các plugin như WP-DBManager giúp dễ dàng chẩn đoán các sự cố cơ sở dữ liệu và sửa chữa chúng. Tôi khuyên bạn nên đọc hướng dẫn chi tiết của Kinsta về sửa chữa các sự cố cơ sở dữ liệu WordPress để bắt đầu.

Kiểm tra các plugin và chủ đề trang web của bạn

Trong hầu hết các trường hợp, các plugin và chủ đề của bên thứ ba không gây ra lỗi 504. Nhưng có một chút khả năng là chúng có thể gây ra thời gian chờ máy chủ, thường là do xếp hàng đợi nhiều yêu cầu chưa được lưu trữ được tạo bởi plugin / chủ đề. Vì điều này liên quan đến nhiều nhân viên PHP của máy chủ của bạn, nó có thể gây ra lỗi 504.

Một ví dụ tuyệt vời về vấn đề này là WooCommerce, là một plugin được cài đặt để thêm chức năng thương mại điện tử vào các trang WordPress.

Cách đơn giản nhất bạn có thể khắc phục sự cố này là hủy kích hoạt tất cả các plugin của bạn. Hãy nhớ rằng bạn sẽ không mất bất kỳ dữ liệu nào nếu bạn chỉ hủy kích hoạt một plugin.

Nếu bạn có thể truy cập trang tổng quan quản trị của mình, bạn có thể truy cập bổ sung màn hình, chọn Hủy kích hoạt từ menu tác vụ hàng loạt, hãy đánh dấu chọn tất cả các plugin, sau đó nhấn Ứng dụng cái nút. Điều này sẽ vô hiệu hóa tất cả các plugin của bạn.

Deactivate plugins in WordPress

Hủy kích hoạt tất cả các plugin WordPress thông qua bảng điều khiển quản trị WP

nếu bạn không thể truy cập khu vực quản trị của bạn, thì bạn có thể tắt plugin qua SFTP bằng phương pháp được mô tả trước đó. Chỉ cần đổi tên thư mục plugin chính để tắt hàng loạt plugin.

Khi bạn đã vô hiệu hóa tất cả các plugin, hãy kiểm tra xem trang web của bạn có tải đúng cách hay không. Nếu nó hoạt động, thì bạn phải kích hoạt từng plugin một, kiểm tra trang web sau khi bật mọi plugin.

Cuối cùng, hãy đảm bảo rằng các plugin, chủ đề và lõi WordPress của bạn được cập nhật. Ngoài ra, hãy đảm bảo rằng máy chủ của bạn đang chạy phiên bản khuyến nghị của PHP.

Nếu bạn cảm thấy điều này quá sức, bạn luôn có thể liên hệ với chủ nhà để được giúp đỡ. Kinsta sử dụng New Relic và các kỹ thuật khắc phục sự cố khác để trợ giúp khách hàng thu hẹp plugin, truy vấn hoặc tập lệnh nào có thể gây ra lỗi.

Trong trường hợp xấu nhất, chẳng hạn như truy vấn không hiệu quả hoặc mã không hợp lệ trong plugin / chủ đề, bạn có thể mang lại Nhà phát triển WordPress để khắc phục sự cố.

Kiểm tra nhật ký lỗi

Đang xem nhật ký lỗi có thể rất hữu ích khi khắc phục sự cố và gỡ lỗi 504 trên trang web WordPress của bạn. Điều này có thể giúp bạn nhanh chóng thu hẹp một vấn đề trên trang web của mình, đặc biệt nếu vấn đề đó là do một plugin yêu cầu trên trang web của bạn.

Nếu bạn là khách hàng của Kinsta, bạn có thể dễ dàng thấy lỗi trong trình xem nhật ký trong bảng điều khiển MyKinsta của mình.

Checking error logs inside MyKinsta dashboard

Kiểm tra nhật ký lỗi bên trong bảng điều khiển MyKinsta

Nếu máy chủ của bạn không có công cụ ghi nhật ký, thì bạn có thể bật chế độ gỡ lỗi WordPress bằng cách thêm mã sau vào wp-config.php file:

xác định ('WP_DEBUG', true); xác định ('WP_DEBUG_LOG', true); xác định ('WP_DEBUG_DISPLAY', false);

Các Hằng số WP_DEBUG bật hoặc tắt chế độ gỡ lỗi WordPress. Nó có hai hằng số đồng hành tùy chọn có thể mở rộng các tính năng của nó. Các WP_DEBUG_LOG liên tục hướng tất cả các lỗi được lưu vào một debug.log tập tin trong / wp-content / danh mục. Nếu không thấy tệp này, bạn luôn có thể tạo một tệp.

Các WP_DEBUG_DISPLAY kiểm soát hằng số liệu nhật ký gỡ lỗi có hiển thị trong trang HTML hay không. Đặt giá trị này thành false sẽ ẩn tất cả các lỗi, nhưng bạn có thể xem lại các lỗi sau vì bạn cũng đã xác định WP_DEBUG_LOG như sự thật.

Quan trọng: Nếu bạn có WP_DEBUG được bật trong môi trường Kinsta, nó sẽ định tuyến tất cả các lỗi đến debug.log tập tin chứ không phải lỗi. nhật ký trong bảng điều khiển MyKinsta.

Bạn cũng có thể tải xuống tệp nhật ký lỗi WordPress thô qua SFTP. Thông thường, bạn có thể tìm thấy nhật ký lỗi trong thư mục gốc của máy chủ của mình trong một thư mục có tên là “nhật ký”.

Accessing the WordPress error logs folder via SFTP

Truy cập thư mục nhật ký lỗi WordPress qua SFTP

Người dùng Kinsta cũng có thể bật chế độ gỡ lỗi WordPress từ bảng điều khiển MyKinsta của họ. Để làm điều đó, hãy điều hướng đến Trang web> Công cụ> Gỡ lỗi WordPress và nhấp vào Kích hoạt cái nút. Điều này sẽ cho phép bạn xem các lỗi và thông báo PHP mà không cần phải bật chế độ gỡ lỗi qua SSH hoặc SFTP.

Cuối cùng, bạn có thể kiểm tra các tệp nhật ký máy chủ. Tùy thuộc vào máy chủ bạn đang sử dụng để lưu trữ trang web WordPress của mình, chúng thường được tìm thấy ở các vị trí sau:

  • Apache:/var/log/apache2/error.log/
  • Nginx:/var/log/nginx/error.log/

Bạn có thể tham khảo tài liệu liên quan đến việc ghi nhật ký của Apache hoặc là Nginx để biết thêm thông tin.

Định cấu hình cài đặt Apache hoặc Nginx đúng cách

Bạn có thể chỉnh sửa tệp cấu hình máy chủ của mình để tăng giới hạn tài nguyên cho các lệnh cụ thể. Điều này có thể giúp bạn giải quyết lỗi 504 Gateway Timeout.

Đối với máy chủ web Apache

Đầu tiên, hãy thêm mã sau vào httpd.conf:

TimeOut 600

Cài đặt này xác định thời gian máy chủ sẽ đợi các yêu cầu nhất định trước khi đánh dấu nó là sự cố mạng hết thời gian chờ. Nó là giá trị mặc định là 60 giây (Phiên bản Apache 2.4).

Bạn chỉ có thể thêm chỉ thị này trong httpd.conf tệp, không phải trong của bạn .htaccess tập tin. Vì hầu hết các nhà cung cấp dịch vụ lưu trữ được chia sẻ không cho phép bạn sửa đổi httpd.conf , bạn có thể thử tăng giá trị của Chỉ thị LimitRequestBody trong của bạn .htaccess thay vào đó.

Sau đó, thêm dòng sau vào php.ini file:

max_execution_time 300

Giá trị mặc định của PHP chỉ thị max_execution_time là 30 giây. Tăng nó sẽ cho phép các tập lệnh PHP của trang web của bạn chạy lâu hơn.

Đối với máy chủ web Nginx

Nếu bạn đang chạy các trang web WordPress của mình trên Nginx + FastCGI Process Manager (PHP-FPM) hoặc sử dụng Nginx làm proxy ngược đối với Apache, bạn có thể điều chỉnh cài đặt máy chủ để giúp ngăn lỗi 504 Gateway Timeout.

Lỗi 504 Gateway Timeout trên Nginx + FastCGI (PHP-FPM)

Đầu tiên, bạn phải chỉnh sửa tệp cấu hình nhóm PHP-FPM của mình. Bạn có thể tìm thấy nó tại /etc/php7.4/fpm/pool.d/www.conf vị trí trong máy chủ Nginx của bạn (đường dẫn chính xác có thể khác nhau dựa trên Phiên bản PHP). Ngoài ra, bạn có thể chạy lệnh sau trong thiết bị đầu cuối của mình để chỉnh sửa tệp cấu hình nhóm PHP-FPM:

sudo nano /etc/php/7.2/fpm/pool.d/www.conf

Tiếp theo, đặt lệnh sau:

request_termina_timeout = 300

Sau đó, bạn phải chỉnh sửa php.ini tập tin. Bạn có thể tìm nó tại /etc/php.ini. Mở tệp và thêm / thay đổi giá trị cho max_execution_time chỉ thị đến 300 giây.

max_execution_time = 300

Cuối cùng, thêm mã sau vào nginx.conf khối vị trí của tệp:

vị trí ~ .php$ {... fastcgi_read_timeout 300; }

Tải lại Nginx và PHP-FPM để các thay đổi có hiệu lực.

dịch vụ sudo nginx tải lại dịch vụ sudo php7.4-fpm tải lại

Mã chính xác để tải lại PHP-FPM sẽ khác nhau dựa trên phiên bản PHP được cài đặt trên máy chủ của bạn. Kiểm tra trang web của bạn để xem liệu nó có khắc phục được sự cố hay không.

Lỗi 504 Gateway Timeout trên Nginx Proxy

Nếu bạn đang sử dụng Nginx làm máy chủ proxy ngược cho Apache, thì bạn có thể làm cho nó dễ chịu hơn đối với thời gian chờ máy chủ bằng cách thêm các lệnh sau vào nginx.conf file:

proxy_kết_hết 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;

Đừng quên tải lại Nginx sau khi thực hiện các thay đổi của bạn.

sudo service nginx reload

Các lỗi HTTP khác như 504 Gateway Timeout

Như đã đề cập trước đó trong bài viết, có rất nhiều lỗi HTTP 5xx khác giống như lỗi 504 Gateway Timeout. Đó là vì thực tế là tất cả chúng đều xảy ra ở phía máy chủ. Những lỗi này bao gồm:

Các lỗi HTTP khác gây ra do các sự cố phía máy khách, như 404 không tìm thấy lỗi, cũng giống như lỗi 504. Bạn có thể tham khảo chi tiết của Kinsta hướng dẫn và danh sách mã trạng thái HTTP để biết thêm thông tin.

Tóm lược

Của bạn Trang WordPress có thể bị ảnh hưởng bởi lỗi 504 Gateway Timeout vì nhiều lý do. Trong bài viết này, bạn đã học cách khắc phục tất cả chúng. Thông thường, những lỗi này là do sự cố phía máy chủ, trong trường hợp đó, bạn có thể liên hệ với máy chủ của mình và nhanh chóng khắc phục sự cố.

Tuy nhiên, bạn cũng phải hiểu rằng lỗi này có thể xảy ra do các plugin, chủ đề, dịch vụ của bên thứ ba, các truy vấn cơ sở dữ liệu không hiệu quả hoặc sự kết hợp của hai hoặc nhiều trong số này. Nếu bạn đang sử dụng tối đa tài nguyên máy chủ của mình (ví dụ: nhân viên PHP), bạn nên tối ưu hóa trang web của bạn để đạt hiệu suất.

Nếu bạn vẫn thấy rằng trang web của mình đang hết thời gian sử dụng, thì rất có thể bạn cần phải nâng cấp gói lưu trữ của mình hoặc số lượng nhân viên PHP. Tôi khuyên bạn chỉ nên xem xét tùy chọn này sau khi bạn đã sử dụng hết các giải pháp khác được mô tả trong bài viết này.

Từ các trang tĩnh đơn giản đến phức tạp thương mại điện tửtrang web thành viên, Các gói lưu trữ của Kinsta được thiết kế để phù hợp với tất cả các loại trang web. Ngay cả khi trang web của bạn sử dụng nhiều tài nguyên máy chủ hơn những gì gói lưu trữ của bạn cung cấp, Tính năng mở rộng quy mô tự động của Kinsta có nghĩa là trang web của bạn sẽ luôn trực tuyến.

Chúng ta có bỏ lỡ điều gì không? Nếu bạn vẫn cảm thấy khó khăn trong việc khắc phục lỗi 504 Gateway Timeout trên trang web WordPress của mình, hãy để lại bình luận bên dưới.