Le serveur Caddy (ou Caddy Web) est un serveur Web open source écrit en GoLang et prend en charge HTTP/2. Il utilise la bibliothèque standard GoLang pour fournir la fonctionnalité HTTP. Une caractéristique notable de Caddy est que HTTPS est activé par défaut. Il s'agit du premier serveur Web à fournir des fonctionnalités HTTPS sans configuration supplémentaire.

Par rapport à nos serveurs Web couramment utilisés tels que Nginx et Apache, la plus grande caractéristique de Caddy est qu'il est simple à déployer. Il possède le module de serveur Web de base d'Apache ou nginx, et possède également des fonctions uniques, telles que : HTTP/. 2, HTTPS automatique, multicœur, Websockets, Markdown, IPv6 et plus encore.

Caddy peut être utilisé pour des sites Web statiques et dynamiques. Bien sûr, de nombreuses personnes ont constaté que Caddy est facile à installer et à déployer. Ils intègrent Caddy à diverses applications telles que les disques réseau et les téléchargements. Cela ne profite pas seulement de la simplicité de déploiement et de configuration de Caddy. , mais maximise également les ressources du serveur de sauvegarde au maximum et se concentre sur le développement et la gestion d'applications tierces.
Le serveur Web léger de Caddy avec la plus grande capacité - déploiement HTTPS automatisé en une minute d'applications de sites Web et de disques réseau

Cet article partagera l'installation et l'utilisation du serveur Caddy, d'autres outils et scripts de création de sites Web, et :

  1. Comparaison de trois excellents gestionnaires de fichiers en ligne (liste de répertoires) - Directory Lister, h5ai et FileRun
  2. Installation et configuration de Smokeping - outil de surveillance des performances du réseau open source gratuit, déploiement visuel maître/esclave
  3. Script d'installation en un clic OneinStack : déployez facilement le certificat Let's Encrypt et configurez le site HTTPS

PS : mis à jour le 21 février 2018. recherche un programme de disque réseau gratuit. Vous pouvez également essayer ceci : utilisez Pydio pour créer un stockage cloud privé gratuit - la synchronisation automatique multi-terminal peut lire des vidéos musicales en ligne.

1. Méthode d'installation du chariot

Site officiel de Caddy :

  1. Site Web : https://caddyserver.com/
  2. Télécharger : https://caddyserver.com/download
  3. Github : https://github.com/mholt/caddy

Il n'y a que trois étapes pour installer et déployer Caddy. Tout d'abord, sélectionnez la version de Caddy en fonction du système d'exploitation de votre serveur et téléchargez-la (Linux et Windows sont pris en charge).

2. Méthode de configuration du Caddy

2.1  Créer un fichier de configuration

Créez d'abord un fichier de configuration et placez-le dans /etc/caddy.

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

En plus du fichier de configuration, caddy générera automatiquement un certificat SSL et nécessitera un dossier pour placer le certificat SSL.

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

Étant donné que la clé privée sera placée dans le dossier SSL, les autorisations sont définies sur 770 pour interdire aux autres utilisateurs d'y accéder. Enfin, créez le répertoire dans lequel sont placés les fichiers du site Web. S'il existe déjà, il n'est pas nécessaire de le créer.

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

2.2  Configurer le démarrage

Après avoir créé ces fichiers et répertoires, nous devons configurer Caddy en tant que service afin qu'il puisse s'exécuter automatiquement au démarrage et qu'il soit facile à gérer. Étant donné que la plupart des distributions utilisent actuellement systemd, je ne parlerai ici que de la façon de configurer systemd.

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  Modifier le fichier Caddy.

Vous pouvez directement utiliser vim /etc/caddy/Caddyfile pour modifier le Caddyfile, ou vous pouvez le modifier sur votre propre ordinateur et le télécharger sur le serveur. Si vous modifiez le fichier Caddy et constatez qu'il ne prend pas effet, vous devez exécuter sudo systemctl restart caddy.service pour redémarrer caddy.

2.4  Format de fichier Caddy

Le format de Caddfile est relativement simple. Premièrement, la première ligne doit être l'adresse du site Web, par exemple :

localhost:8080

ou

wzfou.com

L'adresse peut porter un numéro de port, alors caddy ouvrira uniquement le service http sur ce port, mais pas https. Si le numéro de port n'est pas écrit, caddy liera les ports 80 et 443 par défaut et démarrera les services http et https sur. le même temps. L'adresse peut être suivie d'un tas d'instructions. Le format de base d'un Caddyfile est le suivant, composé d'une adresse de site Web et d'instructions.

Directive 2.5 

Le but de la directive est de permettre certaines fonctions du site Web. Il existe trois formats d’instructions. Parlons d’abord des instructions sans paramètres les plus simples, telles que :

wzfou.com    
gzip

Le gzip sur la deuxième ligne est une instruction qui signifie activer la fonction de compression gzip, afin que le site Web puisse réduire le trafic lors de la transmission des pages Web. Le format de la deuxième commande est une commande avec des paramètres simples :

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

Dans la troisième ligne, la commande log activera la fonction de journalisation pour le site Web. Les paramètres après la commande log indiquent à caddy où le fichier journal est stocké. La commande tls de la quatrième ligne indique à caddy d'activer https pour le site Web et de demander automatiquement un certificat. Le paramètre d'e-mail suivant sert à informer l'autorité de certification de l'adresse e-mail du demandeur. (caddy utilisera let's encrypt par défaut pour demander un certificat et le renouveler, ce qui est très pratique)

De plus, il peut y avoir plus d'un paramètre simple, comme la directive redir :

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

La commande redir ci-dessus prend trois paramètres, ce qui signifie utiliser la redirection 301 pour toutes les requêtes. Cette commande est très utile lors du changement de nom de domaine du site Web. De plus, la commande tls a changé. Elle ne transmet pas seulement le paramètre email, mais transmet également respectivement le chemin du certificat et de la clé privée. De cette façon, caddy ne demandera pas automatiquement un certificat, mais utilisera le certificat fourni. par le chemin.

Dans cet exemple, des espaces réservés tels que {uri} sont également utilisés. Une liste détaillée peut être trouvée ici : https://caddyserver.com/docs/placeholders. Le dernier type d'instruction prend des paramètres complexes. Ce type d'instruction peut contenir de nombreux paramètres, elle doit donc être entourée d'accolades, comme l'instruction d'en-tête :

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}
}

Les directives d'en-tête des lignes 6 à 10 représentent l'ajout de Access-Control-Allow-Origin et Access-Control-Allow-Methods< à toutes les requêtes /api/xxx. > Ces deux en-têtes peuvent prendre en charge l'accès inter-domaines javascript. La ligne 9 représente la suppression de l'en-tête Server pour empêcher les autres de voir le type de serveur.

Les lignes 11 à 13 utilisent l'instruction fastcgi, ce qui signifie que la requête est transmise aux programmes back-end tels que php et ruby ​​​​via fastcgi.

Les lignes 14 et 15 utilisent la commande rewrite. La fonction de cette commande est de rediriger en interne vers le serveur Après le paramètre suivant to, il y a trois autres paramètres. similaire. try_files pour nginx. Dites à caddy de vérifier d'abord s'il existe un fichier correspondant à {path} dans le répertoire racine de l'URL /var/www. S'il n'y a pas de fichier correspondant à {path}, vérifiez s'il existe un répertoire correspondant à {path}. s'il n'y en a pas, transmettez-le au fichier d'entrée index.php. Cette fonctionnalité est généralement utilisée dans le framework MVC de PHP.

2.6  Site Web multi-domaine

Les URL mentionnées ci-dessus sont toutes les URL d’un seul nom de domaine. Que se passe-t-il si plusieurs noms de domaine sont déployés sur le même serveur ? C'est très simple, il vous suffit de le développer avec une accolade après le nom de domaine, comme suit :

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
}

Il s'agit de la configuration de base du caddy. Pour plus d'informations, veuillez vous référer à la documentation du site officiel : https://caddyserver.com/docs.

3. Script de création de site Web en un clic Caddy

Après avoir examiné la configuration Caddy ci-dessus, certains amis peuvent se demander s'il existe un script Caddy pour la création de sites Web en un clic ?

3.1 Installateur de serveur Web Caddy

  1. Adresse du projet : https://github.com/sayem314/Caddy-Web-Server-Installer

Configuration système : Ubuntu 14.x, 15.x, 16.x, Debian 7.x , 8.x, 9.x, CentOS 6.8, 7.2. Exécutez la commande suivante :

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

Utilisez ensuite la commande suivante pour continuer :

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版本信息

Commande d'installation du plugin :

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

Lors de l'installation de caddy, il vous sera demandé de saisir votre nom de domaine et votre adresse e-mail (il émettra automatiquement ssl pour vous), puis d'utiliser la commande pour démarrer caddy<. ept2> !

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

Voici l'interface pour une installation réussie :

Vous pouvez également insérer de l'audio, de la vidéo, etc. en ligne.

4. Résumé

L'installation et l'exécution de Caddy en tant que serveur Web ne prennent presque que quelques minutes. Bien sûr, Caddy peut également implémenter la mise en cache, la mise en miroir, etc., comme nginx, les règles de configuration de Caddy sont également relativement simples. Vous n'avez besoin que de quelques minutes pour étudier. le site officiel. Le document peut être copié par vous-même.

Caddy émettra automatiquement un certificat Let's Encrypt gratuit, mais vous devez d'abord résoudre le nom de domaine sur le serveur, sinon vous obtiendrez une erreur lors de l'ajout d'un hôte virtuel. La question de savoir si Caddy peut être utilisé comme environnement de production formel reste encore ouverte, mais il n'y a aucun problème à utiliser Caddy comme simple serveur HTTP.

Laisser une réponse