如何在 Windows Server 上將 Caddy 用作 Web 伺服器

若要在 Windows Server 上執行 Caddy,請安裝其 Windows 原生可執行文件,將 Caddyfile 指向您的網站資料夾,並將 Caddy 註冊為 Windows 服務。此設定可提供靜態檔案服務,並能自動取得並續訂公共網域的 HTTPS 憑證。 Docker 是可選的;以下步驟不需要容器執行環境。

這些指令會使用C:\Caddy佔位符域。建立防火牆規則或安裝服務時,請以管理員身分執行 PowerShell。

1. 下載適用於 Windows 的 Caddy

開啟Caddy 官方下載頁面,選擇適合您伺服器架構的 Windows 版本。如果您使用的是 GitHub 發布版本,請選擇相符的 Windows 檔案。解壓縮或複製caddy.exe到指定位置C:\Caddy。 Caddy 安裝指南還介紹了靜態二進位檔案和簽章驗證。

Windows 檔案總管打開,導覽至 C:\Caddy,caddy.exe 應用程式可見。
將 Caddy 可執行檔保存在專用資料夾中,例如 C:\Caddy。

2. 建立網站資料夾

在 PowerShell 中,建立一個文件根目錄和一個小的測試頁面。準備就緒後,將此測試文件替換為您網站的文件:

New-Item -ItemType Directory -Force C:\Caddy\site | Out-Null
Set-Content -Path C:\Caddy\site\index.html -Value '<h1>Hello from Caddy</h1>' -Encoding utf8
PowerShell 和檔案總管顯示 C:\Caddy 目錄下有一個網站資料夾和 index.html 檔案。
網站資料夾包含 Caddy 將要提供的頁面。

3. 建立本地 Caddyfile 文件

使用以下命令開啟記事本notepad C:\Caddy\Caddyfile。如果提示建立文件,請選擇「是」。輸入以下配置,然後將其另存為Caddyfile不含副.txt檔名的檔案:

:8080 {
    root * C:/Caddy/site
    file_server
}

該root指令設定目錄並file_server提供其中的檔案。使用較高的本機連接埠便於在切換到公共 HTTP 和 HTTPS 連接埠之前進行測試。請參閱官方的根目錄和文件伺服器參考文件。

記事本顯示了連接埠 8080 的 Caddyfile 文件,其中包含 Windows 網站根目錄和 file_server 指令。
在 Windows 路徑中使用正斜杠,使 Caddyfile 檔案易於閱讀。

4. 驗證並測試網站

在 PowerShell 中,切換到 Caddy 資料夾,驗證配置,然後在前台啟動 Caddy:

Set-Location C:\Caddy
.\caddy.exe validate --config .\Caddyfile
.\caddy.exe run --config .\Caddyfile

在該視窗保持開啟狀態時,瀏覽至http://localhost:8080伺服器上的對應位置。您應該會看到測試標題。此本機檢查特意使用了 HTTP;Ctrl+C在更改公共網域的檔案之前,請停止前台進程。

PowerShell 執行 Caddy,同時瀏覽器在 localhost:8080 顯示測試頁面
在將伺服器公開之前,請確認本機測試頁面可以載入。

5. 配置您的真實域名

請編輯C:\Caddy\Caddyfile並替換測試配置,使用您自己的網域和文件根目錄:

www.example.com {
    root * C:/Caddy/site
    file_server
}

請替換www.example.com為您控制的域名。如果網站位址中包含主機名,Caddy 可以管理公共 TLS 憑證並將 HTTP 重新導向到 HTTPS。自動頒發憑證需要主機名稱解析到此伺服器,並且相關的質詢流量能夠到達該伺服器。上線前,請查看 Caddy 的自動 HTTPS 要求。

記事本顯示了為網域名稱和 C:\Caddy\site 文件根目錄配置的 Caddyfile 檔案。
使用訪客將輸入的主機名,而不是像 localhost 這樣的本地位址。

6. 允許公共網路流量

建立 DNS A 記錄,如果您的伺服器支援 IPv6,則建立 AAAA 記錄,將您的網域名稱指向伺服器的公共位址。在管理員權限的 PowerShell 視窗中,為 TCP 連接埠 80 和 443 新增入站 Windows 防火牆規則:

New-NetFirewallRule -DisplayName "Caddy HTTP and HTTPS" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443

同時,允許這些連接埠通過伺服器前端的任何雲端防火牆、路由器或網路安全群組。 Caddy 使用連接埠 80 處理 HTTP 請求和常見的 ACME 驗證,使用連接埠 443 處理 HTTPS 請求。 UDP 連接埠 443 對於 HTTP/3 是可選的。 Microsoft 文件中提供了New-NetFirewallRule cmdlet 的相關說明。

Windows Defender 防火牆入站規則精靈已輸入 TCP 連接埠 80 和 443
允許 Caddy 進行標準 Web 流量和憑證驗證所需的兩個 TCP 連接埠。

7. 將 Caddy 作為 Windows 服務運行

保持網域配置不變,然後開啟一個提升權限的 PowerShell 視窗。官方 Caddy 服務指南支援sc.exeWindows 或 Windows Server。對於直接服務,請使用明確配置路徑註冊可執行檔並啟動它:

sc.exe create caddy start= auto binPath= '"C:\Caddy\caddy.exe" run --config C:\Caddy\Caddyfile'
sc.exe start caddy

Windows 服務以服務帳戶執行。請確保帳戶可以讀取網站和設定文件,並可以寫入 Caddy 的持久性資料目錄,該目錄儲存託管證書材料。請勿將該目錄視為一次性目錄;請參閱 Caddy 的目錄約定和Windows 服務說明。

PowerShell 顯示 Caddy Windows 服務已成功啟動
註冊服務後,從 PowerShell 或 Windows 服務控制台啟動它。

8. 驗證 HTTPS 並進行故障排除

使用以下命令檢查服務狀態sc.exe query caddy,然後https://www.example.com使用您的實際主機名稱開啟網站。如果網站無法載入,請檢查 DNS 記錄、Windows 和網路防火牆,以及是否有其他程式佔用了 80 或 443 連接埠。您可以使用以下命令檢查監聽器:

Get-NetTCPConnection -State Listen -LocalPort 80,443

如果 Caddy 報告憑證或質詢錯誤,請確認公用 DNS 指向此伺服器,且入站 TCP 80 和 443 連接埠可以存取該伺服器。對於配置編輯,請再次驗證該文件,然後重新加載 Caddy。 CaddyC:\Caddy\caddy.exe reload --config C:\Caddy\Caddyfile入門指南和故障排除指南涵蓋了其他配置和錯誤。

瀏覽器顯示一個 HTTPS 站點,旁邊是 Windows 服務控制台,Caddy Web 伺服器正在運行。
確認公共網站使用 HTTPS 協議,且 Caddy 服務仍在運作。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。