Snippets và Named Trong Caddy Server

33 Likes Comment

I: snippets

snippets trong caddy nó giống như một function trong code thường dùng của các ngôn ngữ lập trình vậy, nó được đặt tên và được gọi thông qua lệnh import, snippets là một đoạn code chứa các thông tin cấu hình chung nó được dùng để làm giảm tải cho việc cấu hình hệ thống

Trong cấu trúc mặc định của caddy thì snippets được sếp thứ tự là thứ 2 từ trên xuống theo sơ đồ sau

Ví dụ điển hình nhất của snippets là sài để chuyển hướng http sang https, ví dụ nó sẽ như sau

(redirect) {
	@http {
		protocol http
	}
	redir @http https://{host}{uri}
}

và mỗi khi bạn cần chuyển https sang https ở đâu thì chỉ cần thêm dòng này vào là song

import redirect

Ví dụ chúng ta sẽ có cấu hình như sau hoàn chỉnh để chuyển hướng từ http sang https cho 2 domain caddy1 và caddy2

(redirect) {
	@http {
		protocol http
	}
	redir @http https://{host}{uri}
}

caddy1.manhtuong.net {
	import redirect
}

caddy2.manhtuong.net {
	import redirect
}

Ngoài việc chuyển hướng snippet cũng có nhiều tác dụng khác như cấu hình cho header mình đã đề cập trong bài: Cấu hình bảo mật cho header của website Caddyserver

II: Named matchers

Named matchers thường được dùng kèm với snippets để tăng cường cấu hình cho các thành phần riêng lẻ trong website nó được dùng như một điều kiện để chạy các đoạn cấu hình trong snippets.

Trong caddy file thì Named matchers được gọi thông qua “@name”, bạn có thể thay name bằng bất cứ cái gì bạn muốn ví dụ ở trên mình đặt named là @http,

Ngoài ra chúng có thể đứng riêng lẻ và có thể được dùng như một điều kiện để chạy các đoạn cấu hình khác. nếu chúng đừng riêng lẻ không trong snippets thì bạn cần phải đặt cấu hình này bên trong block của domain.

Ví dụ đoạn code dưới đây mình sẽ dùng named matchers là @mobile để tiến hành làm điều kiện để khi user truy cập với user-agent AppleWebKit sẽ được hệ thống tự động chuyển dữ liệu đó sang một server dành riêng cho mobile thông qua cấu hình reverse proxy.

@mobile {
		header user-agent *AppleWebKit*
}
reverse_proxy @mobile localhost:9999

Đây cũng là một cấu hình thông dụng khi bạn muốn tùy chỉnh giao diện cho máy tính và điện thoại một cách tối ưu. Một cấu hình đầy đủ nó sẽ như sau

caddy.manhtuong.net {
	@mobile {
		header user-agent *AppleWebKit*
        }
        reverse_proxy @mobile localhost:9999
}

Tùy vào yêu cầu hãy áp dụng chúng cho linh hoạt vào hệ thống của bạ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