Caddy Server (oder Caddy Web) ist ein in GoLang geschriebener Open-Source-Webserver, der HTTP/2 unterstützt. Er nutzt die GoLang-Standardbibliothek, um HTTP-Funktionalität bereitzustellen. Eine bemerkenswerte Funktion von Caddy ist, dass HTTPS standardmäßig aktiviert ist. Er ist der erste Webserver, der HTTPS-Funktionen ohne zusätzliche Konfiguration bereitstellt.

Im Vergleich zu unseren häufig verwendeten Webservern wie Nginx und Apache besteht das größte Merkmal von Caddy darin, dass es einfach bereitzustellen ist. Es verfügt über das grundlegende Webservermodul von Apache oder Nginx und verfügt außerdem über einige einzigartige Funktionen, wie zum Beispiel: HTTP/. 2, Automatisches HTTPS, Multicore, Websockets, Markdown, IPv6 und mehr.

Caddy kann für statische und dynamische Websites verwendet werden. Natürlich haben viele Leute gesehen, dass Caddy einfach in verschiedene Anwendungen wie Netzwerkfestplatten und Downloads integriert werden kann , sondern maximiert auch die maximale Einsparung von Serverressourcen und die Konzentration auf die Entwicklung und Verwaltung von Drittanbieteranwendungen.
Caddys leichter Webserver mit der höchsten Kapazität – automatisierte HTTPS-Bereitstellung von Website- und Netzwerkfestplattenanwendungen in einer Minute

In diesem Artikel werden die Installation und Verwendung des Caddy-Servers, weitere Tools und Skripte zum Erstellen von Websites erläutert und:

  1. Vergleich von drei hervorragenden Online-Dateimanagern (Verzeichnisliste) – Directory Lister, h5ai und FileRun
  2. Smokeping-Installation und -Konfiguration – kostenloses Open-Source-Tool zur visuellen Master/Slave-Bereitstellung zur Überwachung der Netzwerkleistung
  3. OneinStack-Installationsskript mit einem Klick – einfache Bereitstellung des Let’s Encrypt-Zertifikats und Konfiguration der HTTPS-Site

PS: Aktualisiert am 21. Februar 2018 , auf der Suche nach einem kostenlosen Netzwerk-Festplattenprogramm, können Sie auch Folgendes ausprobieren: Erstellen Sie mit Pydio einen kostenlosen privaten Cloud-Speicher – mit der automatischen Synchronisierung mehrerer Terminals können Sie Musikvideos online abspielen.

1. Caddy-Installationsmethode

Offizielle Caddy-Website:

  1. Website: https://caddyserver.com/
  2. Download: https://caddyserver.com/download
  3. Github: https://github.com/mholt/caddy

Für die Installation und Bereitstellung von Caddy sind nur drei Schritte erforderlich. Wählen Sie zunächst die Caddy-Version entsprechend Ihrem Server-Betriebssystem aus und laden Sie sie herunter (sowohl Linux als auch Windows werden unterstützt).

2. Caddy-Konfigurationsmethode

2.1  Konfigurationsdatei erstellen

Erstellen Sie zunächst eine Konfigurationsdatei und legen Sie diese in /etc/caddy ab.

sudo mkdir /etc/caddy
sudo touch /etc/caddy/Caddyfile
sudo chown -R root:www-data /etc/caddy

Zusätzlich zur Konfigurationsdatei generiert caddy automatisch ein SSL-Zertifikat und benötigt einen Ordner zum Ablegen des SSL-Zertifikats.

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

Da der private Schlüssel im SSL-Ordner abgelegt wird, sind die Berechtigungen auf 770 festgelegt, um anderen Benutzern den Zugriff zu verbieten. Erstellen Sie abschließend das Verzeichnis, in dem die Website-Dateien abgelegt werden. Wenn es bereits vorhanden ist, ist es nicht erforderlich, es zu erstellen.

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

2.2  Start einrichten

Nachdem wir diese Dateien und Verzeichnisse erstellt haben, müssen wir caddy als Dienst konfigurieren, damit er beim Booten automatisch ausgeführt werden kann und einfach zu verwalten ist. Da die meisten Distributionen derzeit systemd verwenden, werde ich hier nur auf die Konfiguration von systemd eingehen.

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service   # 从 github 下载 systemd 配置文件
sudo systemctl daemon-reload        # 重新加载 systemd 配置
sudo systemctl enable caddy.service # 设置 caddy 服务自启动
sudo systemctl status caddy.service # 查看 caddy 状态

2.3  Caddyfile bearbeiten.

Sie können vim /etc/caddy/Caddyfile direkt verwenden, um die Caddydatei zu ändern, oder Sie können sie auf Ihrem eigenen Computer ändern und auf den Server hochladen. Wenn Sie die Caddy-Datei ändern und feststellen, dass sie nicht wirksam wird, müssen Sie sudo systemctl restart caddy.service ausführen, um Caddy neu zu starten.

2.4  Caddyfile-Format

Das Format von Caddfile ist relativ einfach. Erstens muss die erste Zeile die Adresse der Website sein, zum Beispiel:

localhost:8080

oder

wzfou.com

Die Adresse kann eine Portnummer tragen, dann öffnet caddy nur den http-Dienst auf diesem Port, nicht jedoch https. Wenn die Portnummer nicht geschrieben ist, bindet caddy standardmäßig die Ports 80 und 443 und startet die http- und https-Dienste unter die selbe Zeit. Der Adresse können eine Reihe von Anweisungen folgen. Das Grundformat einer Caddyfile besteht aus einer Website-Adresse und Anweisungen.

2.5 -Direktive

Der Zweck der Richtlinie besteht darin, bestimmte Funktionen für die Website zu ermöglichen. Es gibt drei Anweisungsformate. Lassen Sie uns zunächst über die einfachsten Anweisungen ohne Parameter sprechen, wie zum Beispiel:

wzfou.com    
gzip

Das gzip in der zweiten Zeile ist eine Anweisung, die bedeutet, die gzip-Komprimierungsfunktion zu aktivieren, damit die Website den Datenverkehr bei der Übertragung von Webseiten reduzieren kann. Das Format des zweiten Befehls ist ein Befehl mit einfachen Parametern:

wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/

In der dritten Zeile aktiviert der Log-Befehl die Log-Funktion für die Website. Die Parameter nach dem Log-Befehl teilen Caddy mit, wo die Log-Datei gespeichert ist. Der tls-Befehl in der vierten Zeile weist Caddy an, https für die Website zu aktivieren und automatisch ein Zertifikat zu beantragen. Der folgende E-Mail-Parameter dient dazu, der Zertifizierungsstelle die E-Mail-Adresse des Antragstellers mitzuteilen. (Caddy verwendet standardmäßig Let’s Encrypt, um ein Zertifikat zu beantragen und zu erneuern, was sehr praktisch ist.)

Darüber hinaus kann es mehr als einen einfachen Parameter geben, beispielsweise die Redir-Direktive:

wzfou.com
gzip
log /var/log/caddy/access.log
tls /etc/ssl/cert.pem /etc/ssl/key.pem
root /var/www/
redir / https://wzfou.com/archive/{uri} 301

Der obige redir-Befehl benötigt drei Parameter, was bedeutet, dass für alle Anfragen eine 301-Umleitung verwendet wird. Dieser Befehl ist sehr nützlich, wenn der Domänenname der Website geändert wird. Darüber hinaus hat sich der Befehl tls geändert. Er übergibt nicht nur den E-Mail-Parameter, sondern auch den Pfad des Zertifikats bzw. des privaten Schlüssels. Auf diese Weise beantragt Caddy nicht automatisch ein Zertifikat, sondern verwendet das angegebene Zertifikat am Weg.

In diesem Beispiel werden auch Platzhalter wie {uri} verwendet. Eine detaillierte Liste finden Sie hier: https://caddyserver.com/docs/placeholders. Der letzte Anweisungstyp benötigt komplexe Parameter. Dieser Anweisungstyp kann viele Parameter enthalten und muss daher in ein Paar geschweifte Klammern eingeschlossen werden, z. B. die Header-Anweisung:

wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/
header /api {
    Access-Control-Allow-Origin  *
    Access-Control-Allow-Methods "GET, POST, OPTIONS"
    -Server
}
fastcgi / 127.0.0.1:9000 php {
    index index.php
}
rewrite {
    to {path} {path}/ /index.php?{query}
}

Die Header-Anweisungen in den Zeilen 6–10 stellen das Hinzufügen von Access-Control-Allow-Origin und Access-Control-Allow-Methods< zu allen /api/xxx-Anfragen dar > Diese beiden Header können den domänenübergreifenden Javascript-Zugriff unterstützen. Zeile 9 stellt das Löschen des Server-Headers dar, um zu verhindern, dass andere den Servertyp sehen.

Die Zeilen 11 bis 13 verwenden die Fastcgi-Anweisung, was bedeutet, dass die Anforderung über Fastcgi an Back-End-Programme wie PHP und Ruby weitergeleitet wird.

In den Zeilen 14–15 wird der Befehl „rewrite“ verwendet. Die Funktion dieses Befehls besteht darin, intern auf den Server umzuleiten. Nach dem folgenden Parameter gibt es drei weitere Parameter ähnlich. try_files für nginx. Weisen Sie Caddy an, zunächst zu prüfen, ob im URL-Stammverzeichnis /var/www eine Datei vorhanden ist, die {Pfad} entspricht. Überprüfen Sie dann, ob ein Verzeichnis vorhanden ist, das {Pfad} entspricht Wenn es keine gibt, leiten Sie es an die Eintragsdatei index.php weiter. Diese Funktion wird im Allgemeinen im MVC-Framework von PHP verwendet.

2.6  Multi-Domain-Website

Bei den oben genannten handelt es sich um alle URLs eines einzelnen Domänennamens. Was passiert also, wenn mehrere Domänennamen auf demselben Server bereitgestellt werden? Es ist ganz einfach, Sie müssen es nur mit einer geschweiften Klammer nach dem Domainnamen erweitern, wie folgt:

wzfou.com {
    gzip
    log /var/log/caddy/wzfou_com.log
    tls iwzfou@gmail.com
    root /var/www/
    header /api {
        Access-Control-Allow-Origin  *
        Access-Control-Allow-Methods "GET, POST, OPTIONS"
        -Server
   }
    fastcgi / 127.0.0.1:9000 php {
        index index.php
    }
    rewrite {
        to {path} {path}/ /index.php?{query}
    }
}
wzfou.com{
    tls iwzfou@gmail.com
    log /var/log/caddy/wzfou_com.log
    redir / https://wzfou.com/{uri} 301
}

Dies ist die grundlegende Caddy-Konfiguration. Weitere Informationen finden Sie in der offiziellen Website-Dokumentation: https://caddyserver.com/docs.

3. Caddy-One-Click-Website-Erstellungsskript

Nachdem sie sich die Caddy-Konfiguration oben angesehen haben, fragen sich einige Freunde vielleicht, ob es ein Caddy-Skript zum Erstellen von Websites mit einem Klick gibt?

3.1 Caddy-Web-Server-Installer

  1. Projektadresse: https://github.com/sayem314/Caddy-Web-Server-Installer

Systemanforderungen: Ubuntu 14.x, 15.x, 16.x, Debian 7.x , 8.x, 9.x, CentOS 6.8, 7.2. Führen Sie den folgenden Befehl aus:

wget https://git.io/vra5C -O - -o /dev/null|bash

Verwenden Sie dann den folgenden Befehl, um fortzufahren:

caddy start  #开启Caddy Web Server
caddy stop  #停止Caddy Web Server
caddy reload  #重载Caddy Web Server
caddy restart  #重启Caddy Web Server
caddy status  #查看Caddy Web Server状态
caddy install  #安装Caddy Web Server
caddy edit  #编辑配置文件Caddyfile
caddy service  #使Caddy Web Server成为一项服务(upstart/systemd)
caddy update  #升级Caddy Web Server
caddy delete  #卸载Caddy and data
caddy about  #关于Caddy Web Server
caddy version  #检测脚本/Caddy/PHP5-fpm版本信息

Plugin-Befehl installieren:

caddy install http.cache,http.filemanager,http.ipfilter,http.ratelimit

Bei der Installation von caddy werden Sie aufgefordert, Ihren Domänennamen und Ihre E-Mail-Adresse einzugeben (es wird automatisch ssl für Sie ausgestellt) und dann den Befehl verwenden, um caddy< zu starten ept2>!

虚拟主机文件夹:/var/caddywww
配置文件夹:/etc/Caddyfile

Dies ist die Schnittstelle für eine erfolgreiche Installation:

Audio, Video etc. können auch online eingefügt werden.

4. Zusammenfassung

Die Installation und Ausführung von Caddy als Webserver dauert fast nur wenige Minuten. Natürlich kann Caddy auch Caching, Spiegelung usw. implementieren. Die Konfigurationsregeln von Caddy sind ebenfalls relativ einfach Die offizielle Website kann selbst kopiert werden.

Caddy stellt automatisch ein kostenloses Let’s Encrypt-Zertifikat aus, Sie müssen jedoch zuerst den Domänennamen zum Server auflösen, sonst erhalten Sie beim Hinzufügen eines virtuellen Hosts eine Fehlermeldung. Ob Caddy als formale Produktionsumgebung verwendet werden kann, ist noch fraglich, aber die Verwendung von Caddy als einfacher HTTP-Server stellt kein Problem dar.

Hinterlasse eine Antwort