Thứ sáu, 13/03/2020 | 00:00 GMT+7

Cách lưu trữ một trang web với Caddy trên Ubuntu 18.04

Caddy là một web server được thiết kế dựa trên sự đơn giản và bảo mật đi kèm với một số tính năng hữu ích cho việc lưu trữ các trang web. Ví dụ: nó có thể tự động lấy và quản lý certificate TLS từ Let's Encrypt để kích hoạt HTTPS và hỗ trợ HTTP / 2. HTTPS là một hệ thống đảm bảo lưu lượng truy cập giữa user và server của bạn và đang nhanh chóng trở thành kỳ vọng cơ bản của bất kỳ trang web nào đang chạy trong quá trình production - nếu không có nó, Chrome và Firefox sẽ cảnh báo rằng trang web là "Không an toàn" nếu user cố gắng gửi thông tin đăng nhập thông tin.

Trước đây, phương pháp được khuyến khích để cài đặt Caddy là download các file binary được tạo sẵn từ trang web của dự án Caddy. Tuy nhiên, những thay đổi về cách hoạt động của giấy phép Caddy nghĩa là bạn không còn được phép sử dụng các file binary được tạo sẵn này cho mục đích thương mại trừ khi bạn trả phí cấp phép, ngay cả khi bạn chỉ sử dụng Caddy trong nội bộ doanh nghiệp. May mắn là mã nguồn Caddy vẫn hoàn toàn là open-souce và bạn có thể tự xây dựng Caddy để tránh gặp phải các vấn đề về cấp phép.

Trong hướng dẫn này, bạn sẽ xây dựng Caddy từ nguồn và sử dụng nó để lưu trữ một trang web được bảo mật bằng HTTPS. Điều này đòi hỏi phải biên dịch nó, cấu hình nó bằng Caddyfile và cài đặt các plugin. Cuối cùng, bạn sẽ học cách nâng cấp cài đặt của bạn khi version mới được phát hành.

Yêu cầu

Bước 1 - Xây dựng Caddy

Trong bước này, bạn sẽ xây dựng Caddy từ nguồn với khả năng thêm plugin sau này, tất cả mà không cần thay đổi mã nguồn của Caddy.

Với mục đích của hướng dẫn này, bạn sẽ lưu trữ mã nguồn dưới ~/caddy . Tạo folder đó bằng cách chạy lệnh sau:

  • mkdir ~/caddy

Điều hướng đến nó:

  • cd ~/caddy

Bạn sẽ lưu trữ mã nguồn để chạy và tùy chỉnh Caddy trong một file có tên caddy.go . Tạo nó bằng lệnh sau:

  • nano caddy.go

Thêm các dòng sau:

~ / caddy / caddy.go
package main  import (     "github.com/caddyserver/caddy/caddy/caddymain" )  func main() {     // caddymain.EnableTelemetry = false     caddymain.Run() } 

Mã này nhập Caddy trực tiếp từ Github (sử dụng Git) và khởi động nó từ chức năng main lối vào. Nếu bạn muốn bật tính năng đo từ xa, hãy bỏ comment caddymain.EnableTelemetry và đặt giá trị thành true . Khi bạn hoàn tất, hãy lưu file .

Để caddy.go có thể sử dụng các phụ thuộc đã nhập, bạn cần khởi tạo nó dưới dạng module :

  • go mod init caddy
Output
go: creating new go.mod: module caddy

Đến đây, bạn đã sẵn sàng tạo version root của Caddy từ mã nguồn trên bằng lệnh:

  • go install

Sẽ có rất nhiều kết quả , trình bày chi tiết những thư viện nào mà Go đã download dưới dạng phụ thuộc cần thiết để biên dịch. Tệp thực thi kết quả được lưu trữ trong $GOPATH/bin , như được giải thích trong yêu cầu .

Khi nó kết thúc, hãy thử chạy Caddy:

  • caddy

Bạn sẽ thấy kết quả tương tự như sau:

Output
Activating privacy features... done. Serving HTTP on port 2015 http://:2015 WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with `ulimit -n 8192`.

Điều này nghĩa là Caddy bay đã khởi động thành công và có mặt trên cổng 2015 . Bạn có thể bỏ qua thông báo cảnh báo, vì giới hạn đó sẽ được điều chỉnh trong các bước sau mà không cần bạn can thiệp. Để thoát, nhấn CTRL + C

Đến đây bạn đã xây dựng và thực thi Caddy. Trong bước tiếp theo, bạn sẽ cài đặt Caddy như một dịch vụ để nó tự động khởi động khi server khởi động , sau đó điều chỉnh cài đặt quyền sở hữu và quyền đảm bảo tính bảo mật của server .

Bước 2 - Cài đặt Caddy

Đến đây bạn đã xác minh bạn có thể xây dựng và chạy Caddy, đã đến lúc cấu hình dịch vụ systemd để Caddy có thể được chạy tự động khi khởi động hệ thống. Để hiểu thêm về systemd, hãy truy cập hướng dẫn về Systemd Essentials của ta .

Để bắt đầu, hãy di chuyển file binary Caddy sang /usr/local/bin , vị trí tiêu chuẩn cho các file binary không được quản lý bởi trình quản lý gói của Ubuntu và không phải là key cho hoạt động của hệ thống:

  • sudo mv $GOPATH/bin/caddy /usr/local/bin/

Tiếp theo, thay đổi quyền sở hữu binary Caddy cho user root :

  • sudo chown root:root /usr/local/bin/caddy

Điều này sẽ ngăn các account khác sửa đổi file thực thi. Tuy nhiên, ngay cả khi user root sẽ sở hữu Caddy, bạn chỉ nên thực thi nó bằng cách sử dụng các account không phải root khác có trên hệ thống. Điều này đảm bảo trong trường hợp Caddy (hoặc một chương trình khác) bị xâm phạm, kẻ tấn công sẽ không thể sửa đổi hệ binary hoặc thực hiện các lệnh dưới dạng root .

Tiếp theo, cài đặt quyền file binary để 755 - điều này mang lại gốc đầy đủ đọc / ghi / thực hiện quyền cho các file , trong khi những user khác sẽ chỉ có thể đọc và thực hiện nó:

  • sudo chmod 755 /usr/local/bin/caddy

Vì quy trình Caddy sẽ không chạy dưới quyền root , Linux sẽ ngăn nó liên kết với các cổng 80443 (các cổng tiêu chuẩn cho HTTP và HTTPS, tương ứng), vì đây là các hoạt động quyền . Để có thể dễ dàng truy cập vào domain của bạn, Caddy cần phải bị ràng buộc với một trong các cổng này, tùy thuộc vào giao thức. Nếu không, bạn cần thêm một số cổng cụ thể vào URL domain trong trình duyệt của bạn để xem nội dung mà nó sẽ phân phát.

Để cho phép Caddy liên kết với các cổng thấp mà không cần chạy dưới quyền root , hãy chạy lệnh sau:

  • sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

Tiện ích setcap cài đặt các khả năng của file . Trong lệnh này, nó gán khả năng CAP_NET_BIND_SERVICE cho file binary Caddy, cho phép file thực thi liên kết với cổng thấp hơn 1024.

Đến đây bạn đã hoàn thành việc cài đặt hệ binary Caddy và sẵn sàng bắt đầu viết cấu hình Caddy. Tạo một folder nơi bạn sẽ lưu trữ các file cấu hình của Caddy bằng cách chạy lệnh sau:

  • sudo mkdir /etc/caddy

Sau đó, đặt quyền user và group chính xác cho nó:

  • sudo chown -R root:www-data /etc/caddy

Đặt user làm root và group làm www-data đảm bảo Caddy sẽ có quyền đọc và ghi vào folder (thông qua group www-data ) và chỉ account superuser mới có quyền đọc và sửa đổi. www-data là user và group mặc định cho web server trên Ubuntu.

Trong bước sau, bạn sẽ bật cấp phép certificate TLS tự động từ Let's Encrypt. Để chuẩn bị cho điều đó, hãy tạo một folder để lưu trữ bất kỳ certificate TLS nào mà Caddy sẽ có được và cung cấp cho nó các luật sở hữu giống như folder /etc/caddy :

  • sudo mkdir /etc/ssl/caddy
  • sudo chown -R root:www-data /etc/ssl/caddy

Caddy phải có khả năng ghi các certificate vào folder này và đọc từ nó để mã hóa các yêu cầu. Vì lý do này, hãy sửa đổi các quyền cho folder /etc/ssl/caddy để nó chỉ có thể truy cập được bằng rootwww-data :

  • sudo chmod 0770 /etc/ssl/caddy

Tiếp theo, tạo một folder để lưu trữ các file mà Caddy sẽ lưu trữ:

  • sudo mkdir /var/www

Sau đó, đặt chủ sở hữu và group của folder thành www-data :

  • sudo chown www-data:www-data /var/www

Caddy đọc cấu hình của nó từ một file có tên là Caddyfile , được lưu trữ trong /etc/caddy . Tạo file trên đĩa bằng lệnh:

  • sudo touch /etc/caddy/Caddyfile

Để cài đặt dịch vụ Caddy, hãy download file đơn vị systemd từ repository Caddy Github vào /etc/systemd/system bằng lệnh:

  • sudo sh -c 'curl https://raw.githubusercontent.com/caddyserver/caddy/master/dist/init/linux-systemd/caddy.service > /etc/systemd/system/caddy.service'

Sửa đổi các quyền của file dịch vụ để chỉ có chủ sở hữu của nó, root :

  • sudo chmod 644 /etc/systemd/system/caddy.service

Sau đó, reload systemd để phát hiện dịch vụ Caddy:

  • sudo systemctl daemon-reload

Kiểm tra xem systemd đã phát hiện ra dịch vụ Caddy bằng cách chạy systemctl status :

  • sudo systemctl status caddy

Bạn sẽ thấy kết quả tương tự như:

Output
● caddy.service - Caddy HTTP/2 web server Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: e Active: inactive (dead) Docs: https://caddyserver.com/docs

Nếu bạn thấy cùng một kết quả này, thì dịch vụ mới đã được systemd phát hiện chính xác.

Là một phần của yêu cầu cài đặt server ban đầu, bạn đã bật ufw , firewall không phức tạp và kết nối SSH được phép. Để Caddy có thể phân phát truy cập HTTP và HTTPS từ server của bạn, bạn cần cho phép chúng trong ufw bằng cách chạy lệnh sau:

  • sudo ufw allow proto tcp from any to any port 80,443

Đầu ra sẽ là:

Output
Rule added Rule added (v6)

Sử dụng ufw status để kiểm tra xem các thay đổi có hoạt động hay không:

  • sudo ufw status

Bạn sẽ thấy kết quả sau:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80,443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80,443/tcp (v6) ALLOW Anywhere (v6)

Quá trình cài đặt Caddy của bạn hiện đã hoàn tất, nhưng nó chưa được cấu hình để phục vụ bất kỳ thứ gì. Trong bước tiếp theo, bạn sẽ cấu hình Caddy để phục vụ các file từ folder /var/www .

Bước 3 - Cấu hình Caddy

Trong phần này, bạn sẽ viết cấu hình Caddy cơ bản để phục vụ các file tĩnh từ server của bạn.

Bắt đầu bằng cách tạo một file HTML cơ bản trong /var/www , được gọi là index.html :

  • sudo nano /var/www/index.html

Thêm các dòng sau:

/var/www/index.html
<!DOCTYPE html> <html> <head>   <title>Hello from Caddy!</title> </head> <body>   <h1 style="font-family: sans-serif">This page is being served via Caddy</h1> </body> </html> 

Khi được hiển thị trong trình duyệt web, file này sẽ hiển thị tiêu đề với nội dung Trang này đang được cung cấp qua Caddy . Lưu và đóng file .

Mở file cấu hình Caddyfile bạn đã tạo trước đó để chỉnh sửa:

  • sudo nano /etc/caddy/Caddyfile

Thêm các dòng sau:

/ etc / caddy / Caddyfile
:80 {   root /var/www   gzip } 

Đây là cấu hình Caddy cơ bản và tuyên bố rằng cổng 80 của server của bạn phải được cung cấp với các file từ /var/www và được nén bằng gzip để giảm thời gian tải trang ở phía client .

Trong đa số trường hợp, Caddy cho phép bạn tùy chỉnh thêm các chỉ thị cấu hình. Ví dụ: bạn có thể giới hạn nén gzip chỉ với các file HTML và PHP và đặt mức nén thành 6 (1 là thấp nhất và 9 là cao nhất) bằng cách mở rộng lệnh với dấu ngoặc nhọn và liệt kê các lệnh phụ bên dưới:

/ etc / caddy / Caddyfile
:80 {   root /var/www   gzip {       ext .html .htm .php       level 6   } } 

Khi bạn hoàn tất, hãy lưu file .

Caddy có một số lượng lớn các chỉ thị khác nhau cho nhiều trường hợp sử dụng. Ví dụ: lệnh fastcgi có thể hữu ích để kích hoạt PHP. Chỉ thị markdown được dùng để tự động chuyển đổi các file Markdown sang HTML trước khi phân phát chúng, điều này có thể hữu ích cho việc tạo một blog đơn giản.

Để kiểm tra xem mọi thứ có hoạt động bình thường không, hãy khởi động dịch vụ Caddy:

  • sudo systemctl start caddy

Tiếp theo, chạy systemctl status để tìm thông tin về trạng thái của dịch vụ Caddy:

  • sudo systemctl status caddy

Bạn sẽ thấy như sau:

Output
● caddy.service - Caddy HTTP/2 web server Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-03-12 11:17:49 UTC; 11s ago Docs: https://caddyserver.com/docs Main PID: 3893 (caddy) Tasks: 7 (limit: 1152) CGroup: /system.slice/caddy.service └─3893 /usr/local/bin/caddy -log stdout -log-timestamps=false -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp Mar 12 11:17:49 caddy-article-update systemd[1]: Started Caddy HTTP/2 web server. Mar 12 11:17:49 caddy-article-update caddy[3893]: [INFO] Caddy version: v1.0.5 Mar 12 11:17:49 caddy-article-update caddy[3893]: Activating privacy features... done. Mar 12 11:17:49 caddy-article-update caddy[3893]: Serving HTTP on port 80 Mar 12 11:17:49 caddy-article-update caddy[3893]: http:// Mar 12 11:17:49 caddy-article-update caddy[3893]: [INFO] Serving http:// Mar 12 11:17:49 caddy-article-update caddy[3893]: [INFO][cache:0xc00007a7d0] Started certificate maintenance routine Mar 12 11:17:49 caddy-article-update caddy[3893]: [WARNING] Sending telemetry (attempt 1): Post "https://telemetry.caddyserver.com/v1/update/6a8159c4-3427-42 Mar 12 11:17:57 caddy-article-update caddy[3893]: [WARNING] Sending telemetry (attempt 2): Post "https://telemetry.caddyserver.com/v1/update/6a8159c4-3427-42 ...

Đến đây bạn có thể duyệt đến IP của server của bạn trong trình duyệt web. Trang web mẫu của bạn sẽ hiển thị:

Tin nhắn từ Caddy

Đến đây bạn đã cấu hình Caddy để phục vụ các file tĩnh từ server của bạn. Trong bước tiếp theo, bạn sẽ mở rộng chức năng của Caddy thông qua việc sử dụng các plugin.

Bước 4 - Sử dụng Plugin

Các plugin cung cấp một cách thay đổi và mở rộng hành vi của Caddy. Nói chung, họ cung cấp nhiều chỉ thị cấu hình hơn để bạn sử dụng, tùy theo trường hợp sử dụng của bạn. Trong phần này, bạn sẽ thêm và sử dụng các plugin bằng cách cài đặt plugin minify , giúp loại bỏ khoảng trắng dư thừa và thu gọn mã sẽ được gửi đến client , giảm thêm thời gian tải và sử dụng.

Kho lưu trữ GitHub của plugin minifyhacdias / caddy-minify .

Điều hướng đến folder có mã nguồn bạn đã tạo ở bước một:

  • cd ~/caddy

Để thêm plugin vào Caddy, bạn cần nhập plugin đó vào file caddy.go mà bạn đã sử dụng để tạo Caddy. Mở caddy.go để chỉnh sửa:

  • nano caddy.go

Nhập plugin minify bằng cách thêm dòng được đánh dấu, như sau:

~ / caddy / caddy.go
package main  import (     "github.com/caddyserver/caddy/caddy/caddymain"      _ "github.com/hacdias/caddy-minify" )  func main() {     // caddymain.EnableTelemetry = false     caddymain.Run() } 

Lưu và đóng file .

Một số plugin có thể yêu cầu một số chỉnh sửa cấu hình nhỏ, vì vậy hãy nhớ đọc tài liệu về bất kỳ plugin nào bạn cài đặt. Bạn có thể tìm thấy danh sách các plugin phổ biến trong ngăn bên trái của tài liệu Caddy , bên dưới Plugins .

Khi nào bạn thêm một plugin mới, bạn phải xây dựng lại Caddy. Điều này là do Go là một ngôn ngữ lập trình biên dịch, nghĩa là mã nguồn được chuyển thành mã máy trước khi thực thi. Thay đổi đối với khai báo nhập đã thay đổi mã nguồn, nhưng sẽ không ảnh hưởng đến file binary cho đến khi nó được biên dịch.

Sử dụng lệnh go install để biên dịch Caddy:

  • go install

Khi hoàn tất , hãy di chuyển file binary đã tạo sang /usr/local/bin và cài đặt quyền cho file binary như bạn đã làm trước đó. Bạn phải thực hiện các bước sau mỗi khi xây dựng lại Caddy đảm bảo chức năng và bảo mật của nó:

  • sudo mv $GOPATH/bin/caddy /usr/local/bin/
  • sudo chown root:root /usr/local/bin/caddy
  • sudo chmod 755 /usr/local/bin/caddy
  • sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

Để bắt đầu sử dụng plugin minify , bạn cần thêm lệnh minify vào Caddyfile của bạn . Mở nó để chỉnh sửa:

  • sudo nano /etc/caddy/Caddyfile

Bật plugin bằng cách thêm dòng sau vào đoạn cấu hình :

/ etc / caddy / Caddyfile
:80 {   root /var/www   gzip   minify } 

Bây giờ, khởi động lại server của bạn bằng systemctl :

  • sudo systemctl restart caddy

Caddy hiện đang chạy và sẽ thu nhỏ các file nào mà nó phục vụ, bao gồm index.html bạn đã tạo trước đó. Bạn có thể quan sát quá trình 'thu nhỏ' tại nơi làm việc bằng cách tìm nạp nội dung domain của bạn bằng cách sử dụng curl :

  • curl http://your_domain

Bạn sẽ thấy kết quả sau. Lưu ý tất cả các khoảng trắng không cần thiết đã được loại bỏ, cho thấy rằng plugin minify đang hoạt động.

Output
<!doctype html><title>Hello from Caddy!</title><h1 style=font-family:sans-serif>This page is being served via Caddy</h1>

Trong bước này, bạn đã học cách mở rộng Caddy bằng các plugin. Tiếp theo, bạn sẽ bật HTTPS bằng cách cài đặt plugin tls.dns.digitalocean .

Bước 5 - Bật TLS tự động với Let's Encrypt

Trong phần này, bạn sẽ kích hoạt cấp phép và gia hạn certificate Let's Encrypt tự động, sử dụng bản ghi TXT DNS để xác minh.

Để xác minh bằng cách sử dụng bản ghi DNS TXT, bạn sẽ cài đặt một plugin để giao tiếp với API DigitalOcean, được gọi là tls.dns.digitalocean . Quy trình cài đặt nó gần như giống với cách bạn cài đặt plugin minify ở bước trước. Để bắt đầu, hãy mở caddy.go :

  • nano caddy.go

Thêm repository của plugin để nhập:

~ / caddy / caddy.go
package main  import (     "github.com/caddyserver/caddy/caddy/caddymain"      _ "github.com/hacdias/caddy-minify"      _ "github.com/caddyserver/dnsproviders/digitalocean" )  func main() {     // caddymain.EnableTelemetry = false     caddymain.Run() } 

Biên dịch nó bằng lệnh:

  • go install

Đảm bảo Caddy được dừng thông qua systemctl , sau đó hoàn tất cài đặt plugin bằng cách sao chép file binary Caddy mới được tạo và cài đặt quyền sở hữu và quyền của nó:

  • sudo systemctl stop caddy
  • sudo mv $GOPATH/bin/caddy /usr/local/bin/
  • sudo chown root:root /usr/local/bin/caddy
  • sudo chmod 755 /usr/local/bin/caddy
  • sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

Tiếp theo, cấu hình Caddy hoạt động với API của DigitalOcean để cài đặt bản ghi DNS. Caddy cần truy cập mã thông báo này như một biến môi trường để cấu hình DNS của DigitalOcean, vì vậy bạn sẽ chỉnh sửa file đơn vị systemd của nó:

  • sudo nano /etc/systemd/system/caddy.service

Tìm dòng bắt đầu bằng Environment= trong phần [Service] . Dòng này xác định các biến môi trường sẽ được chuyển cho quy trình Caddy. Thêm khoảng DO_AUTH_TOKEN ở cuối dòng này, sau đó thêm biến DO_AUTH_TOKEN , theo sau là mã thông báo bạn vừa tạo:

/etc/systemd/system/caddy.service
[Service] Restart=on-abnormal  ; User and group the process will run as. User=www-data Group=www-data  ; Letsencrypt-issued certificates will be written to this directory. Environment=CADDYPATH=/etc/ssl/caddy DO_AUTH_TOKEN=your_token_here 

Lưu file này, sau đó reload daemon systemd như bạn đã làm trước đó đảm bảo cấu hình được cập nhật:

  • sudo systemctl daemon-reload

Chạy systemctl status để kiểm tra xem các thay đổi cấu hình của bạn có ổn không:

  • sudo systemctl status caddy

Đầu ra sẽ như thế này:

Output
● caddy.service - Caddy HTTP/2 web server Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: https://caddyserver.com/docs ...

Bạn cần thực hiện một số thay đổi nhỏ đối với Caddyfile của bạn , vì vậy hãy mở nó để chỉnh sửa:

  • sudo nano /etc/caddy/Caddyfile

Thêm các dòng được đánh dấu vào Caddyfile , đảm bảo thay thế your_domain bằng domain của bạn (thay vì chỉ cổng :80 ) và comment gzip :

/ etc / caddy / Caddyfile
your_domain {   root /var/www   #gzip   minify   tls {       dns digitalocean   } } 

Việc sử dụng một domain thay vì chỉ một cổng cho tên server sẽ khiến Caddy phân phát các truy cập qua HTTPS. Chỉ thị tls cấu hình hành vi của Caddy khi sử dụng TLS và chỉ thị con dns chỉ định rằng Caddy nên sử dụng hệ thống DNS-01 , thay vì HTTP-01 .

Với điều này, trang web đã sẵn sàng để được triển khai. Khởi động Caddy bằng systemctl và sau đó enable nó, để nó chạy khi khởi động:

  • sudo systemctl start caddy
  • sudo systemctl enable caddy

Nếu bạn duyệt đến domain của bạn , bạn sẽ tự động được chuyển hướng đến HTTPS, với thông báo tương tự được hiển thị.

Quá trình cài đặt Caddy của bạn hiện đã hoàn tất và được bảo mật, đồng thời bạn có thể tùy chỉnh thêm tùy theo trường hợp sử dụng của bạn .

Nếu bạn muốn cập nhật Caddy khi có version mới, bạn cần cập nhật file go.mod (được lưu trữ trong cùng một folder ), có dạng như sau:

~ / caddy / go.mod
module caddy  go 1.14  require (         github.com/caddyserver/caddy v1.0.5         github.com/caddyserver/dnsproviders v0.4.0         github.com/hacdias/caddy-minify v1.0.2 ) 

Phần nổi bật là version Caddie bạn đang sử dụng. Khi một version mới được phát hành trên Github (xem trang thẻ phát hành ), bạn có thể thay thế version hiện có trong go.mod bằng nó và biên dịch Caddy theo hai bước đầu tiên. Bạn có thể làm tương tự cho tất cả các plugin đã nhập.

Kết luận

Như vậy, bạn đã cài đặt và cấu hình Caddy trên server của bạn , phục vụ các trang tĩnh tại domain mong muốn của bạn, được bảo mật bằng certificate Let's Encrypt TLS miễn phí.

Một bước tốt tiếp theo là tìm cách được thông báo khi có version Caddy bay mới. Ví dụ: bạn có thể sử dụng nguồn cấp dữ liệu Atom cho các bản phát hành Caddy hoặc một dịch vụ chuyên dụng chẳng hạn như dependencies.io .

Bạn có thể khám phá tài liệu của Caddy để biết thêm thông tin về cách cấu hình Caddy.


Tags:

Các tin liên quan

Cách sử dụng nsh để chạy các lệnh từ xa an toàn trên Ubuntu 18.04
2020-03-04
Cách đóng gói và xuất bản ứng dụng Snap trên Ubuntu 18.04
2020-02-25
Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên Ubuntu 18.04 [Khởi động nhanh]
2020-02-10
Cách sử dụng Cron để tự động hóa công việc trên Ubuntu 18.04
2020-01-31
Cách cài đặt và sử dụng Radamsa để Fuzz kiểm tra các chương trình và dịch vụ mạng trên Ubuntu 18.04
2020-01-30
Cách cài đặt Tinc và thiết lập VPN cơ bản trên Ubuntu 18.04
2020-01-21
Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên Ubuntu 18.04
2020-01-06
Cách sử dụng Ansible để cài đặt và thiết lập WordPress với LAMP trên Ubuntu 18.04
2019-12-31
Cách cài đặt WordPress với OpenLiteSpeed trên Ubuntu 18.04
2019-12-18
Cách sử dụng Ansible để cài đặt và thiết lập LAMP trên Ubuntu 18.04
2019-12-17