如何在Linux上使用Caddy托管带有HTTPS的网站

A web server is a server-side application designed to process HTTP requests between client and server. HTTP is the basic and very widely used network protocol.

Apache HTTP 服务器在塑造今日网络的过程中发挥了重要作用。它独占 37.3% 的市场份额。 Nginx 排名第二,市场份额为 32.4%Microsoft IISLiteSpeed 分别位列第三和第四,市场份额分别为 7.8%6.9%

最近,我了解到了一个名为 Caddy 的 Web 服务器。当我试图了解其特性并进行测试部署时,我必须说它令人惊叹。一个便携式且不需要任何配置文件的 Web 服务器。我觉得这是一个非常酷的项目,想要与你分享。让我们来试试 Caddy 吧!

Caddy 是什么?

Caddy 是一个易于配置和使用的 Apache Web 服务器的替代品。Caddy 的项目负责人 Matthew Holt 声称,Caddy 是一个通用的 Web 服务器,旨在为人类设计,可能是其类别中唯一的。

Caddy 是第一个可以使用 Let’s Encrypt 自动获取和更新 SSL/TLS 证书的 Web 服务器。

Caddy 的特性

  1. 使用 HTTP/2 快速处理 HTTP 请求。
  2. 功能强大的 Web 服务器,配置最少,部署无忧。
  3. TLS 加密确保了在 Internet 上通信的应用程序和用户之间的加密。您可以使用自己的密钥和证书。
  4. 易于部署/使用。只需一个单一文件,不依赖于任何平台。
  5. 無需安裝。
  6. 可攜式可執行文件。
  7. 可在多個 CPU/核心上運行。
  8. 先進的 WebSockets 技術 – 瀏覽器和服務器之間的交互式通信會話。
  9. 即時服務器上的 Markdown 文件。
  10. 全面支持最新的 IPv6。
  11. 以自定義格式創建日誌。
  12. 提供 FastCGI、反向代理、重寫和重定向、清潔 URL、Gzip 壓縮、目錄瀏覽、虛擬主機和標頭的支持。
  13. 適用於所有已知平台 – Windows、Linux、BSD、Mac、Android。

什麼使 Caddy 不同?

  1. Caddy 的目標是在2020年為網絡服務,而不是傳統的風格。
  2. 它的設計不僅用於提供 HTTP 請求,也用於服務人類。
  3. 充滿了最新功能 – HTTP/2、IPv6、Markdown、WebSockets、FastCGI、模板和其他開箱即用的功能。
  4. 運行可執行文件無需安裝。
  5. 詳細的文檔,並提供最少的技術描述。
  6. 開發時考慮到設計師、開發人員和博客作者的需求和便利性。
  7. 支持虛擬主機 – 定義所需的站點數。
  8. 適合您 – 無論您的站點是靜態還是動態的。如果你是人類,它就是為你而設計的。
  9. 您專注於實現什麼而不是如何實現它。
  10. 支持大多數平台 – Windows、Linux、Mac、Android、BSD。
  11. 通常,每個站點有一個 Caddy 文件。
  12. 在不到1分鐘的時間內設置,即使你並不十分擅長電腦。
測試環境

I will be testing it on the CentOS server, as well as Debian Server, but the same instructions also work on RHEL and Debian based distributions. For both the server I am going to use 64-bit executables.

Operating Systems: CentOS 8 and Debian 10 Buster
Caddy Version: v2.0.0

在Linux上安裝Caddy Web服務器

無論您在什麼平台上以及使用了哪種架構,Caddy都提供了可以使用您的默認軟件包管理器安裝的預先編譯的二進制包。

在Fedora、RedHat、CentOS中安裝Caddy

我們將從CORP存儲庫在Fedora或RHEL/CentOS 8中安裝Caddy Web服務器的最新版本。

# dnf install 'dnf-command(copr)'
# dnf copr enable @caddy/caddy
# dnf install caddy

RHEL/CentOS 7上使用以下命令。

# yum install yum-plugin-copr
# yum copr enable @caddy/caddy
# yum install caddy

在Debian和Ubuntu中安裝Caddy

$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
    | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
$ sudo apt update
$ sudo apt install caddy

安裝完Caddy Web服務器後,您可以使用以下systemctl命令啟動、啟用並檢查服務的狀態。

# systemctl start caddy
# systemctl enable caddy
# systemctl status caddy

現在打開您的瀏覽器並將瀏覽器指向以下地址,您應該能夠看到Caddy歡迎頁面。

http://Server-IP
OR
http://yourdomain.com
Caddy Web Server

使用Caddy設置域名

要設置域名,首先,您需要將您的域名的A/AAAA DNS記錄指向這個服務器,在您的DNS控制面板中進行操作。接下來,在文件夾"/var/www/html"下創建您網站的文檔根目錄,例如"example.com"

$ mkdir /var/www/html/example.com

如果您使用的是SELinux,您需要修改網絡內容的文件安全上下文。現在打開並編輯Caddy配置文件"/etc/caddy/Caddyfile"

# chcon -t httpd_sys_content_t /var/www/html/example.com -R
# chcon -t httpd_sys_rw_content_t /var/www/html/example.com -R

現在打開並編輯Caddy配置文件,位於/etc/caddy/Caddyfile

# vim /etc/caddy/Caddyfile

:80替換為您的域名,並將站點根目錄更改為/var/www/html/example.com,如下所示。

Configure Caddy Web Server

重新加載Caddy服務以保存配置更改。

# systemctl reload caddy

現在在您的網站文檔根目錄下創建任何HTML頁面(您可以自己創建),並將該頁面保存。

# touch /var/www/html/example.com/index.html

將以下示例Html代碼添加到您的網站首頁。

# echo '<!doctype html><head><title>Caddy Test Page at TecMint</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html

現在再次訪問您的網站以查看您的頁面。

Hosting Website with Caddy

如果一切配置正確,則您的域將通過HTTPS協議提供服務,表示您的連接是安全的。

結論

如果您是新手並且想要設置Web服務器而不必擔心配置,則此工具適合您。即使您是一位經驗豐富的用戶,需要即時和簡單的Web服務器Caddy也值得一試。通過一些配置,您還可以設置文件夾權限,控制身份驗證,錯誤頁面,Gzip,HTTP重定向等,如果您需要設置更複雜和先進的Web服務器。

不要將Caddy視為Apache或Nginx的替代品。Caddy並非旨在處理高流量生產環境。它旨在快速設置Web服務器時提供速度和可靠性。

參考資料

Caddy Web Server的完整用戶指南/完整文檔

我們帶來這份文件,旨在提供快速檢閱和安裝說明,必要時附有圖片。如果您在項目中遇到任何優缺點或任何建議,可以在我們的評論部分給我們。

對我來說,這個項目還太年輕,但運作無誤,看起來強大且有前景。我看到的最大優點是 caddy 不需要隨處攜帶其配置文件。它旨在提供最佳的 Nginx、Lighttpd、vagrant 和 Websocketd。這就是我能說的了。保持與 Tecmint 的聯繫。讚揚

Source:
https://www.tecmint.com/install-caddy-web-server-in-centos-ubuntu/