Comment utiliser le caddy du serveur Web Nginx
May 30, 2023 pm 12:19 PMIntroduction à Caddy
Caddy est un serveur Web puissant et hautement évolutif qui compte actuellement plus de 38 000 étoiles sur GitHub. Caddy est écrit en langage Go et peut être utilisé pour l'hébergement de ressources statiques et le proxy inverse.
Caddy a les principales caractéristiques suivantes?:
Par rapport à la configuration complexe de Nginx, sa configuration originale de Caddyfile est très simple
Vous pouvez modifier dynamiquement la configuration via l'API d'administration qu'il fournit
Prend en charge l'automatisation?; HTTPS par défaut Configuration, peut demander automatiquement un certificat HTTPS et le configurer ;
peut être étendu à des dizaines de milliers de sites
peut être exécuté n'importe où, sans dépendances supplémentaires ; en langage Go et a de la mémoire La sécurité est plus garantie.
Installation
Tout d'abord, nous installons Caddy directement sur CentOS 8. L'installation à l'aide de l'outil DNF est sans doute la plus simple. La méthode d'installation Docker sera présentée plus tard.
Utilisez la commande suivante pour installer Caddy via l'outil DNF. Après une installation réussie, Caddy sera enregistré en tant que service système?;
dnf install 'dnf-command(copr)' dnf copr enable @caddy/caddy dnf install caddy
Utilisez systemctl status caddy pour vérifier l'état de Caddy. un service système, mais il n’a pas été activé.
Utilisation Expérimentons l'utilisation de base de Caddy. Ce sont des opérations courantes pour les serveurs Web. Vous pouvez certainement les utiliser !
Utilisation de base
Essayons d'utiliser Caddy pour commencer, spécifions que Caddy fonctionne sur le port 2015 et renvoie le message "Hello, world!".
L'utilisation directe de la commande caddy affichera les commandes courantes de Caddy. Vous saurez comment l'utiliser après avoir lu l'introduction. Les commandes couramment utilisées sont marquées?:
L'utilisation de la commande caddy start peut exécuter le service Caddy. en arrière-plan?;Caddy utilise les fichiers de configuration au format JSON par défaut. Cependant, comme il est difficile d'écrire une configuration au format JSON, il fournit également un formulaire de configuration plus concis tel que Caddyfile. Utilisez la commande suivante pour convertir automatiquement Caddyfile. dans la configuration JSON?;
caddy adapter

:2015 respond "Hello, world!"
Ensuite, nous utilisons La commande curl accède à localhost:2015 et renverra les informations spécifiées
Bien s?r, nous pouvons également utiliser l'API Admin fournie par Caddy ; pour afficher les informations de configuration, utilisez simplement la commande suivante?:curl localhost:2019/config/

{ "apps": { "http": { "servers": { "srv0": { "listen": [":2015"], "routes": [{ "handle": [{ "body": "Hello, world!", "handler": "static_response" }] }] } } } } }
Syntaxe de base de Caddyfile
Le cas suivant utilisera Caddyfile pour la configuration Nous devons comprendre sa syntaxe. Les règles de syntaxe spécifiques de Caddyfile sont les suivantes.
Présentez les mots-clés dans l'image ci-dessus pour faciliter la compréhension.Utilisation du | Bloc d'options globales | |
---|---|---|
peut être utilisée pour configurer s'il faut activer HTTPS et l'API d'administration, etc. | Snippet, | |
Une fois défini, il peut être référencé via le mot-clé d'importation | Site Block | |
Le proxy statique peut être configuré via file_server et le proxy dynamique peut être configuré via reverse_proxy | Matcher définition | |
Par défaut, la commande aura un impact global, à travers lequel le périmètre d'influence pourra être précisé | Commentaire | |
Utilisez le symbole # commen?ant par | Adresse du site | |
Utilisez HTTPS par défaut. Si vous devez activer HTTP, vous devez spécifier le début de http:// | Directive | |
La directive donne à Caddy des fonctions puissantes | 反向代理反向代理就是當(dāng)請求訪問你的代理服務(wù)器時,代理服務(wù)器會對你的請求進(jìn)行轉(zhuǎn)發(fā),可以轉(zhuǎn)發(fā)到靜態(tài)的資源路徑上去,也可以轉(zhuǎn)發(fā)到動態(tài)的服務(wù)接口上去。我們以代理域名為例,講解如何進(jìn)行靜態(tài)和動態(tài)代理。 靜態(tài)代理靜態(tài)代理就是將請求代理到不同的靜態(tài)資源路徑上去,這里我們將對docs.macrozheng.com的請求代理到我的文檔項(xiàng)目中,對mall.macrozheng.com的請求代理到mall的前端項(xiàng)目中。 首先我們修改下本機(jī)的host文件:
然后將我們的文檔項(xiàng)目和mall前端項(xiàng)目上傳到Caddy的html目錄中去,并進(jìn)行解壓操作: 修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置; http://docs.macrozheng.com { root * /mydata/caddy/html/docs file_server browse } http://mall.macrozheng.com { root * /mydata/caddy/html/mall file_server browse } 如果你的Caddyfile文件格式不太合格的話,會出現(xiàn)如下警告,直接使用caddy fmt --overwrite格式化并重寫配置即可解決; 通過docs.macrozheng.com即可訪問部署好的文檔項(xiàng)目了: 通過mall.macrozheng.com即可訪問到部署好的前端項(xiàng)目了。 動態(tài)代理動態(tài)代理就是把代理服務(wù)器的請求轉(zhuǎn)發(fā)到另一個服務(wù)上去,這里我們將把對api.macrozheng.com的請求代理到演示環(huán)境的API服務(wù)上去。 首先我們修改下本機(jī)的host文件,添加如下規(guī)則
修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置; http://api.macrozheng.com { reverse_proxy http://admin-api.macrozheng.com } 之后通過api.macrozheng.com/swagger-ui.html即可訪問到mall-admin的API文檔頁面了。 文件壓縮如果我們的服務(wù)器帶寬比較低,網(wǎng)站訪問速度會很慢,這時我們可以通過讓Caddy開啟Gzip壓縮來提高網(wǎng)站的訪問速度。這里我們以mall的前端項(xiàng)目為例來演示下它的提速效果。 我們需要修改Caddyfile文件,使用encode指令開啟Gzip壓縮,修改完成后使用caddy reload命令刷新配置; http://mall.macrozheng.com { root * /mydata/caddy/html/mall encode { gzip } file_server browse } 有個比較大的JS文件壓縮前是1.7M; 壓縮后為544K,訪問速度也有很大提示; 另外我們可以看下響應(yīng)信息,如果有Content-Encoding: gzip這個響應(yīng)頭表明Gzip壓縮已經(jīng)啟用了。 地址重寫有的時候我們的網(wǎng)站更換了域名,但還有用戶在使用老的域名訪問,這時可以通過Caddy的地址重寫功能來讓用戶跳轉(zhuǎn)到新的域名進(jìn)行訪問。 我們需要修改Caddyfile文件,使用redir指令重寫地址,修改完成后使用caddy reload命令刷新配置; http://docs.macrozheng.com { redir http://www.macrozheng.com } 此時訪問舊域名docs.macrozheng.com會直接跳轉(zhuǎn)到www.macrozheng.com去。 按目錄劃分有時候我們需要使用同一個域名來訪問不同的前端項(xiàng)目,這時候就需要通過子目錄來區(qū)分前端項(xiàng)目了。 比如說我們需要按以下路徑來訪問各個前端項(xiàng)目;
我們需要修改Caddyfile文件,使用route指令定義路由,修改完成后使用caddy reload命令刷新配置。 http://www.macrozheng.com { route /admin/* { uri strip_prefix /admin file_server { root /mydata/caddy/html/admin } } route /app/* { uri strip_prefix /app file_server { root /mydata/caddy/html/app } } file_server * { root /mydata/caddy/html/www } } HTTPSCaddy能自動支持HTTPS,無需手動配置證書,這就是之前我們在配置域名時需要使用http://開頭的原因,要想使用Caddy默認(rèn)的HTTPS功能,按如下步驟操作即可。 首先我們需要修改域名的DNS解析,直接在購買域名的網(wǎng)站上設(shè)置即可,這里以docs.macrozheng.com域名為例; 請使用以下命令確認(rèn)DNS解析記錄是否正確,注意所配置的服務(wù)器的80和443端口需要在外網(wǎng)中可以正常訪問: curl "https://cloudflare-dns.com/dns-query?name=docs.macrozheng.com&type=A" \ -H "accept: application/dns-json" 修改Caddyfile配置文件,進(jìn)行如下配置; docs.macrozheng.com { root * /mydata/caddy/html/docs file_server browse } 然后使用caddy run命令啟動Caddy服務(wù)器即可,是不是非常方便! caddy run Docker支持當(dāng)然Caddy也是支持使用Docker進(jìn)行安裝使用的,其使用和直接在CentOS上安裝基本一致。 首先使用如下命令下載Caddy的Docker鏡像; docker pull caddy 然后在/mydata/caddy/目錄下創(chuàng)建Caddyfile配置文件,文件內(nèi)容如下; http://192.168.3.105:80 respond "Hello, world!" 之后使用如下命令啟動caddy服務(wù),這里將宿主機(jī)上的Caddyfile配置文件、Caddy的數(shù)據(jù)目錄和網(wǎng)站目錄掛載到了容器中; docker run -p 80:80 -p 443:443 --name caddy \ -v /mydata/caddy/Caddyfile:/etc/caddy/Caddyfile \ -v /mydata/caddy/data:/data \ -v /mydata/caddy/html:/usr/share/caddy \ -d caddy 之后使用docker exec進(jìn)入caddy容器內(nèi)部執(zhí)行命令; docker exec -it caddy /bin/sh 輸入Caddy命令即可操作,之后的操作就和我們直接在CentOS上安裝一樣了。 Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois! Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn
![]() Outils d'IA chauds![]() Undress AI ToolImages de déshabillage gratuites ![]() Undresser.AI UndressApplication basée sur l'IA pour créer des photos de nu réalistes ![]() AI Clothes RemoverOutil d'IA en ligne pour supprimer les vêtements des photos. ![]() Clothoff.ioDissolvant de vêtements AI ![]() Video Face Swapéchangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?! ![]() Article chaud
Guide de construction de Grass Wonder | Uma musume joli derby
4 Il y a quelques semaines
By Jack chen
<??>: 99 nuits dans la forêt - tous les badges et comment les déverrouiller
4 Il y a quelques semaines
By DDD
Uma Musume Pretty Derby Banner Schedule (juillet 2025)
1 Il y a quelques mois
By Jack chen
Guide de température de Rimworld Odyssey pour les navires et Gravtech
3 Il y a quelques semaines
By Jack chen
Windows Security est vide ou ne montre pas les options
1 Il y a quelques mois
By 下次還敢
![]() Outils chauds![]() Bloc-notes++7.3.1éditeur de code facile à utiliser et gratuit ![]() SublimeText3 version chinoiseVersion chinoise, très simple à utiliser ![]() Envoyer Studio 13.0.1Puissant environnement de développement intégré PHP ![]() Dreamweaver CS6Outils de développement Web visuel ![]() SublimeText3 version MacLogiciel d'édition de code au niveau de Dieu (SublimeText3) ![]() Nginx convient plus à la gestion des connexions simultanées élevées, tandis qu'Apache convient plus aux scénarios où des configurations complexes et des extensions de module sont nécessaires. 1.Nginx est connu pour ses performances élevées et sa faible consommation de ressources, et convient à une concurrence élevée. 2.Apache est connu pour sa stabilité et ses riches extensions de modules, qui conviennent aux besoins de configuration complexes. ![]() Nginx et Apache ont chacun leurs propres avantages et inconvénients, et le choix doit être basé sur des besoins spécifiques. 1.Nginx convient aux scénarios de concurrence élevés en raison de son architecture asynchrone non bloquant. 2. Apache convient aux scénarios à faible monnaie qui nécessitent des configurations complexes, en raison de sa conception modulaire. ![]() Le code PHP peut être exécuté de plusieurs manières: 1. Utilisez la ligne de commande pour entrer directement le "nom de fichier PHP" pour exécuter le script; 2. Mettez le fichier dans le répertoire racine du document et accédez-y via le navigateur via le serveur Web; 3. Exécutez-le dans l'IDE et utilisez l'outil de débogage intégré; 4. Utilisez le bac à sable PHP en ligne ou la plate-forme d'exécution de code pour les tests. ![]() La compréhension du chemin du fichier de configuration de Nginx et des paramètres initiaux est très importante car il s'agit de la première étape dans l'optimisation et la gestion d'un serveur Web. 1) Le chemin du fichier de configuration est généralement /etc/nginx/nginx.conf. La syntaxe peut être trouvée et testée à l'aide de la commande nginx-t. 2) Les paramètres initiaux incluent les paramètres globaux (tels que l'utilisateur, worker_processs) et les paramètres HTTP (tels que l'inclusion, log_format). Ces paramètres permettent la personnalisation et l'extension en fonction des exigences. Une configuration incorrecte peut entra?ner des problèmes de performances et des vulnérabilités de sécurité. ![]() Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire ![]() Lors de la configuration de Nginx sur Debian System, les éléments suivants sont quelques conseils pratiques: la structure de base des paramètres globaux du fichier de configuration: définir les paramètres comportementaux qui affectent l'intégralité du service NGINX, tel que le nombre de threads de travail et les autorisations d'utilisateurs en cours d'exécution. Pièce de gestion des événements: Décider comment Nginx s'occupe des connexions réseau est une configuration clé pour améliorer les performances. Pièce de service HTTP: contient un grand nombre de paramètres liés au service HTTP et peut intégrer plusieurs serveurs et blocs de localisation. Options de configuration de base Worker_Connections: Définissez le nombre maximal de connexions que chaque thread de travailleur peut gérer, généralement définie sur 1024. Multi_accept: activez le mode de réception multi-connexion et améliorez la capacité de traitement simultané. s ![]() Nginxservceswebcontentandactsasareverseproxy, loadBalancer et m /r.1) itefficientlyServisetaticContent likehtmlandimages.2) itfunctionsasareverseproxyandloadBalancer, distribution. ![]() Le diagnostic et les solutions pour les erreurs courantes de Nginx incluent: 1. Afficher les fichiers journaux, 2. Ajuster les fichiers de configuration, 3. Optimiser les performances. En analysant les journaux, en ajustant les paramètres de délai d'expiration et en optimisant le cache et l'équilibrage de la charge, des erreurs telles que 404, 502, 504 peuvent être efficacement résolues pour améliorer la stabilité et les performances du site Web. ![]() |