Hướng dẫn chi tiết cấu hình Nginx bảo trì website với HTTP 503

Khi bị lỗi HTTP 503, bạn cần phải thông báo với “search engine”. Vì thế chúng tôi sẽ hướng dẫn cấu hình Nginx bảo trì website với HTTP 503 cho bạn tham khảo.

Mã 503 khá quan trọng trong việc thông báo cho cả “search engine” rằng website ngừng phục vụ bởi bot một thời gian. Nếu bạn không set mã lỗi HTTP 503 thì sẽ dễ bị đánh rớt hạng trong thời gian bảo trì website.

Hướng dẫn chi tiết cấu hình Nginx bảo trì website với HTTP 503

Thường thì bạn có thể code tính năng trả lỗi 503 HTTP ngay trong mã nguồn hoặc cũng có thể tạo 1 file .html thông báo tình trạng bảo trì và cấu hình cho Nginx trả thông báo 503 bảo trì website.

Tạo 1 file .html bảo trì website

Nếu bạn biết sử dụng code HTML và CSS thì có thể tùy biến lại nội dung thông báo trang 503 một cách đẹp hơn. Dưới đây là nội dung code nội dung trang 503 đơn giản nhất.

# vi /home/kdata.com/public_html/maintenance_demo.html

<html>

<head>

<title>Error 503 Service Unavailable</title>

</head>

<body>

<h1>503 Service Unavailable</h1>

Our apologies for the temporary inconvenience. The requested URL generated 503 "Service Unavailable" error due to overloading or maintenance of the server.

</body>

</html>

Cấu hình Nginx bảo trì trang 503 html

Bạn sẽ cấu hình điều kiện ‘if’ trong Virutal Host tương ứng tên miền website bạn đang host trên Nginx Server như sau:

# vi /usr/local/nginx/config/nginx.conf

   ...

   if ( -f $document_root/maintenance_demo.html ) {

      return 503;

   }

   error_page 503 @maintenance;

   location @maintenance {

      rewrite ^(.*)$ /maintenance_demo.html break;

   }

   ...

Nội dung cấu hình trên như sau:

Nếu tìm thấy file ‘maintenance_demo.html’ nằm trong thư mục '$document_root' thì hãy trả mã trạng thái HTTP 503.

Cấu hình mã trạng thái 503 sẽ được xử lý bởi ‘location @maintenance’ bằng cách rewrite toàn bộ các đường link truy cập đến tên miền website tương ứng Vhost đang cấu hình, chuyển hướng phục vụ file ‘maintenance_demo.html’ cho người dùng.

Sau đó khởi động lại dịch vụ Nginx để áp cấu hình mới.

# service nginx reload

Trường hợp chỉ cấu hình cho 1 nhóm người truy cập nội dung site trong lúc bảo trì

Nếu bạn muốn cho phép một số người truy cập từ các nguồn IP khác nhau được tiếp xúc với nội dung website thật trong thời gian bảo trì website thì bạn có thể cấu hình như sau:

...




if ( $remote_addr != "x.x.x.x") {

return 503;

}

error_page 503 @maintenance;

location @maintenance {

rewrite ^(.*)$   /maintenance_demo.html break;

}

...

Sử dụng biến '$remote_addr' để trích xuất lọc thông tin IP của client gửi HTTP request đến. Trong ‘x.x.x.x' là ip mà bạn muốn truy cập được nội dung website thật trong thời gian bản trì. Rồi tiếp đến khởi động lại dịch vụ Nginx.

Sau cùng là thử truy cập tên miền mà bạn vừa cấu hình. Chúc bạn thành công với bài hướng dẫn cấu hình Nginx bảo trì website với HTTP 503 mà chúng tôi vừa giới thiệu trên đây.