Cấu hình chuyển hướng khi website gặp sự cố với caddy

28 Likes Comment

Khi chúng ta vận hành website thì có những lúc web bị lỗi gặp sự cố không truy cập được bạn cần một trang thông báo bảo trì, hoặc chúng ta đơn giản là muốn tạo một thông báo lỗi 404 trên website khi vào những link không tồn tại

Trong caddy có hỗ trợ chúng ta chuyển hướng mỗi khi website gặp lỗi sự cố thông qua việc call tới handle_errors, với handle_errors chúng chỉ hoạt động khi website gặp lỗi trả về http status code khác 200 302 301, tất cả cấu hình này đều được thêm trong cấu hình của block domain

handle_errors sẽ trả về cho chúng ta các thông tin như sau

TênMô Tả
{err.status_code}Mã trạng thái lỗi: vd 404 502
{err.status_text}Text theo lỗi tưng ứng như 404 là not found
{err.message}Full log lỗi trả về từ ứng dụng
{err.trace}Nguồn gốc của lỗi từ đâu
{err.id}đánh dấu ID để nhận dạng lỗi khi nó xuất hiện

cấu hình cơ bản của handle_errors như sau chúng ta cùng phân tích

handle_errors {
	rewrite * /{err.status_code}.html
	file_server
}

Ở đây mỗi klhi web gặp sự cố lỗi 404 403 500 502… thì hệ thống sẽ tự động chuyển hướng hết các truy cập về thông báo lỗi trang tương ứng là 404.html, 403.html, 500.html, 502.html….. bạn cũng có thể cố định nó bằng 1 file err.html

ví dụ cho một cấu hình hoàn chỉnh nhìn nó sẽ như sau

caddy2.manhtuong.net {
    reverse_proxy 193.123.81.136:8888
    handle_errors {
	    rewrite * /{err.status_code}.html
	    file_server
    }
    log {
        output file /home/caddy/caddy.manhtuong.net.log {
		    roll_size 1gb
		    roll_keep 5
		    roll_keep_for 720h
	    }
    }
}

Ngoài chức năng nói trên thì handle_errors còn cho phép chúng ta chuyển hướng tới server dự phòng nếu máy chủ chính lỗi thông qua cấu hình reverse_proxy kết hợp như sau

handle_errors {
	rewrite * /{err.status_code}
	reverse_proxy maychu_phu:9999 {
		header_up Host {upstream_hostport}
	}
}

Với cấu hình trên mỗi khi website chính của chúng ta gặp lỗi thì dữ liệu được đẩy qua máy chủ khác (maychu_phu:9999) để xử lý nâng cao hiệu suất xử lý từ đó giảm tác động tới user. Cấu hình hoàn chỉnh nó sẽ như sau

caddy2.manhtuong.net {
    reverse_proxy 193.123.81.136:8888
    handle_errors {
	    rewrite * /{err.status_code}
	        reverse_proxy maychu_phu:9999 {
		        header_up Host {upstream_hostport}
	        }
    }
    log {
        output file /home/caddy/caddy.manhtuong.net.log {
		    roll_size 1gb
		    roll_keep 5
		    roll_keep_for 720h
	    }
    }
}

Bạn có thể cấu hình chuyển hướng lỗi 404 về trang chủ như sau khi kết hợp với expression như sau

caddy.manhtuong.net {
    reverse_proxy 193.123.81.136:8888
    handle_errors {
	    @404 expression `{err.status_code} in [404]`
	        handle @404 {
		        redir https://caddy.manhtuong.net
	}
}
    log {
        output file /home/caddy/caddy.manhtuong.net.log {
		    roll_size 1gb
		    roll_keep 5
		    roll_keep_for 720h
	    }
    }
}

Tùy nhu cầu hãy cấu hình nó theo yêu cầu của bạn cần

0 0 votes
Article Rating

You might like

Avatar

About the Author: Vô Ưu

Xin chào! Tôi là Vouu, người sáng lập blog này. Tôi là một người yêu thích. Tôi có một công việc ban ngày với tư cách là một chuyên viên bơm vá săm xe các loại, và trang web này là một trong những hoạt động yêu thích của tôi, đặc biệt là trong những lúc rảnh rỗi. Hy vọng bạn thích sử dụng trang web này, và nó sẽ mang lại cho bạn nhiều điều bổ ích. Phản hồi từ người đọc sẽ truyền cảm hứng cho tôi để tôi có thể viết được nhiều hơn nữa !. Bạn chỉ cần để lại nhận xét bên dưới nếu bạn thấy bài viết này hữu ích. Chúc bạn ngày mới tốt lành!
Subscribe
Notify of
guest
0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x