本文將以簡明教程形式,指導您在Ubuntu系統上安裝并運行新一代Web服務器Caddy。
相比傳統Nginx與Apache,Caddy憑借兩大核心優勢脫穎而出:原生HTTPS自動證書管理能力與極簡反向代理配置流程。
Caddy 的一個關鍵特色是原生HTTPS 支持。它會自動為您的網站獲取證書并在需要時續訂,無需任何人工干預。這種內置的 HTTPS 功能非常實用,特別是當您運行多個域名或允許其他用戶將域名指向您的 Caddy 服務器時。
除了 HTTPS 功能外,Caddy 也是在 Ubuntu 上輕松設置反向代理的絕佳解決方案。
在 Ubuntu 上設置和安裝 Caddy 實際上非常簡單,并不比其他 web 服務器更復雜。在本指南中,我們將指導您完成以下步驟:
如果您打算在家庭中的 Ubuntu 服務器上運行 Caddy,請先完成以下步驟:
1.確保 Ubuntu 上有靜態 IP 地址。
2.將端口 80 和 443 轉發到您的 Ubuntu 系統。這些是必需的,因為 Caddy 需要使用它們來獲取 SSL 證書。
3.如果 Ubuntu 上運行了防火墻,必須打開端口 80 和 443。如果您不確定如何操作,我們有一篇關于如何使用 UFW 的指南。
在 Ubuntu 上安裝和運行 Caddy
在接下來的幾節中,我們將引導您完成在 Ubuntu 上安裝和運行最新版本的 Caddy 的簡單步驟。
這些步驟適用于任何仍在積極維護的 Ubuntu 版本。我們將以 Ubuntu 24.04 為例,介紹如何安裝 Caddy。
準備 Ubuntu
1.在開始安裝 Caddy 之前,我們應該先完成幾項任務。
首先是更新軟件包列表緩存,并使用以下兩條命令升級任何過時的軟件包。
sudoapt updatesudo apt upgrade -y
2.安裝運行 Caddy 所需的額外軟件:
確保 curl 和 wget 包已安裝。您可以通過在終端中運行以下命令來完成此操作:
sudoapt install curl
將 Caddy 包倉庫添加到 Ubuntu
3.下載 Caddy 倉庫的 GPG 密鑰:
GPG 密鑰是 APT 包管理器驗證其下載的包的方式。使用以下命令在終端中檢索此密鑰:
curl -1sLf'https://dl.cloudsmith.io/public/caddy/stable/gpg.key'| sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
4.添加 Caddy 倉庫:
使用以下命令將 Caddy 倉庫添加到您的系統:
curl -1sLf'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt'| sudotee/etc/apt/sources.list.d/caddy-stable.list
5.更新包列表緩存:
使用以下命令更新緩存,以便 APT 包管理器知道可以從新倉庫下載包:
sudoapt update
在 Ubuntu 上安裝 Caddy
6.使用以下命令在終端中安裝 Caddy:
sudoapt install caddy
7.安裝完成后,Caddy 會立即啟動,這意味著您現在可以在瀏覽器中訪問 Ubuntu 設備的 IP 地址,以檢查 Caddy 是否已在 Ubuntu 系統上運行。
使用以下命令獲取 IP 地址:
hostname -I
8.在瀏覽器中訪問以下地址(將 替換為您的 Ubuntu 設備的 IP 地址):
http://
9.由于我們當前正在運行隨 Caddy web 服務器附帶的 Caddyfile,因此您應該在屏幕上看到以下內容,表明 Caddy 已在 Ubuntu 上成功設置并準備進行配置。

創建示例網站
10.創建一個目錄來存儲 HTML 文件:
使用 mkdir 命令創建一個目錄,您可以在其中存儲 HTML 文件。運行以下命令(將 替換為您打算使用的域名):
sudomkdir-p /var/www//html
11.編寫 HTML 文件:
使用以下命令開始編寫 HTML 文件(這里使用 Nano,但您可以使用任何文本編輯器):
sudo nano /var/www/
12.在文件中輸入以下內容:
html>
<2;title>Hello Worldtitle> head>Hello World from PiMyLifeUpp> body>html>
13.完成后,按 CTRL + X,然后按 Y,最后按 ENTER 保存并退出。
創建自定義 Caddyfile
14.現在我們已經將一些基本的HTML保存到了Ubuntu系統中,接下來需要調整Caddy配置,以便其能夠從我們剛剛創建的目錄中提供文件服務。為此,我們將編寫自己的Caddyfile,并放棄在安裝Caddy時Ubuntu附帶的那個Caddyfile
Caddyfile的作用類似于Apache中的虛擬主機和Nginx中的服務器塊?;旧希x了網站的結構以及Web服務器應該如何處理該網站。你可以使用以下命令刪除隨Caddy安裝附帶的基本Caddyfile。
sudorm/etc/caddy/Caddyfile
15.編寫自定義 Caddyfile:
Caddyfile 類似于 Apache 中的虛擬主機和 Nginx 中的服務器塊。它是定義網站和 web 服務器如何處理它的方式。
使用以下命令在 Ubuntu 上開始編寫新的 Caddyfile:
sudo nano /etc/caddy/Caddyfile
16. 現在,在這個文件中,你需要輸入以下行。我們將逐步解釋這些內容,以便你簡要了解Caddy如何使用這些文件來設置Web服務器。
a. 你計劃在Ubuntu上使用Caddy托管的每個網站都應該有自己的代碼塊。代碼塊是通過地址后跟左大括號符號({)來定義的。地址實際上可以是幾種不同的內容之一。我們將介紹其中的幾個,但你可以在Caddy網站上找到完整列表。
https://caddyserver.com/docs/caddyfile/concepts#addresses
域名(example.com):通過使用域名,Caddy將監聽該特定的主機名,并嘗試為其生成一個受公眾信任的證書。
IP地址(192.168.0.1):如果你指定了一個IP地址,Caddy將為你的網站生成一個自簽名證書。這基本上意味著每次加載你的網站時都會收到警告,但它仍然可以使用HTTPS。
localhost:Caddy也可以設置為僅向本地機器提供Web內容。當將地址設置為localhost時,只有你的Ubuntu設備才能訪問Caddy提供的內容。就像使用IP地址一樣,Caddy將生成一個自簽名證書,以便你的Web流量仍然可以被加密。
協議(http:// 或 https://):通過將地址設置為http或https協議,Caddy將使用此代碼塊作為捕獲所有內容的代碼塊。如果沒有設置主機名,它將落入此代碼塊。如果你使用的是“https://”,則Caddy將嘗試為任何傳入的流量生成有效的證書。
b. 現在在這個代碼塊中,你可以做幾件事情。Caddy的主要用途有兩個:設置反向代理或從特定目錄提供服務。
對于這個示例,我們將設置Ubuntu上的Caddy Web服務器,以從“/var/www//html”目錄提供文件。
我們只需要輸入以下行。通過指定星號符號(*),Caddy將使用此目錄來處理所有傳入的請求。理論上,你可以根據傳入的請求設置不同的文件夾。
root * /var/www//html
c. Caddy Web服務器內置了許多功能。其中之一就是它的文件服務器。
此文件服務器允許Caddy輕松地從你選擇的根目錄提供靜態文件。如果你愿意,甚至可以通過在此行末尾添加一個空格和“browse”來使你的目錄可瀏覽。
file_server
d. 這就是我們在Ubuntu上使用Caddy設置和提供靜態網站所需的全部內容。
我們需要做的最后一件事是通過在末尾添加一個右大括號符號來結束這個新的服務器代碼塊。
}
17.下面是一個有效的Caddyfile在填寫完文件后可能的樣子。
Caddy Web服務器能夠做更多的事情,但對于我們在Ubuntu上安裝它的基本指南來說,這將足以驗證一切是否正常工作。在我們的示例中,你可以看到我們正在使用localhost。
localhost { root * /var/www/localhost/html file_server}
18.編寫完Caddyfile后,按CTRL + X、Y,然后按ENTER保存并退出。
測試你的新Ubuntu Caddy Web服務器
19.盡管我們已經重寫了Caddyfile,但Caddy Web服務器本身將完全不知道這一點。
幸運的是,讓Caddy加載更新后的文件非常簡單,我們只需要在你的Ubuntu系統上運行下面的命令即可。
sudosystemctl reload caddy
20.一旦Caddy Web服務器完成重新加載,你只需在你最喜歡的Web瀏覽器中輸入你指定的域名即可。
如果一切正常,并且你已經設置了一個有效的域名,Caddy還應該自動為你獲取一個有效的SSL證書。
https://
21.在下面,你可以看到Web服務器現在正在提供我們之前保存的超級簡單的HTML文件。這表明Caddy在Ubuntu上正常工作。
結論
希望如果你已經閱讀到本指南的這一部分,你將已經成功地在Ubuntu上啟動并運行了Caddy Web服務器。
Caddy是一個很棒的Web服務器,尤其是在處理HTTPS時。盡管它比競爭對手(如Nginx)稍慢一些,但其額外的內置功能可能非常有用,尤其是在處理多個域名或設置反向代理時。
-
服務器
+關注
關注
12文章
9513瀏覽量
86696 -
Ubuntu
+關注
關注
5文章
575瀏覽量
30450
發布評論請先 登錄
相關推薦
評論