亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
Caddy簡介
Caddy具有以下主要特性:
安裝
使用
基本上使用
Caddyfile基本語法
反向代理
靜態(tài)代理
動態(tài)代理
文件壓縮
地址重寫
按目錄劃分
HTTPS
Docker支持
首頁 運維 Nginx Nginx的Web伺服器caddy怎麼使用

Nginx的Web伺服器caddy怎麼使用

May 30, 2023 pm 12:19 PM
web nginx caddy

    Caddy簡介

    Caddy是一款功能強大、高度可擴(kuò)展的Web伺服器,目前已經(jīng)獲得了38K Star的GitHub關(guān)注。 Caddy採用Go語言編寫,可用於靜態(tài)資源託管和反向代理。

    Caddy具有以下主要特性:

    • 對比Nginx複雜的配置,其獨創(chuàng)的Caddyfile配置非常簡單;

    • 可透過其提供的Admin API實現(xiàn)動態(tài)修改配置;

    • 預(yù)設(shè)支援自動化HTTPS配置,可自動申請HTTPS憑證並進(jìn)行配置;

    • 能夠擴(kuò)展到數(shù)以萬計的站點;

    • 可以在任意地方執(zhí)行,沒有額外的依賴;

    • 採用Go語言編寫,記憶體安全更有保證。

    安裝

    首先我們直接在CentOS 8上安裝Caddy,使用DNF工具安裝無疑是最簡單的,Docker安裝方式之後也會介紹。

    使用以下指令透過DNF工具安裝Caddy,安裝成功後Caddy會被註冊成系統(tǒng)服務(wù);

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

    使用systemctl status caddy查看Caddy的狀態(tài),可以發(fā)現(xiàn)Caddy已被註冊為系統(tǒng)服務(wù),但是還沒開啟。

    Nginx的Web伺服器caddy怎麼使用

    使用

    下面我們體驗下Caddy的基本使用,對於Web伺服器來說都是常用的操作,你準(zhǔn)能用的上!

    基本上使用

    讓我們先嘗試使用Caddy進(jìn)行入門,指定Caddy運行在2015端口,並返回「Hello, world!」資訊。

    直接使用caddy指令將輸出Caddy的常用指令,基本看介紹就知道如何使用了,標(biāo)出來的是常用指令;

    Nginx的Web伺服器caddy怎麼使用

    使用caddy start指令可以讓Caddy服務(wù)在後臺運行;

    Nginx的Web伺服器caddy怎麼使用

    Caddy預(yù)設(shè)使用JSON格式的設(shè)定文件,但由於JOSN格式設(shè)定書寫比較麻煩,又提供了Caddyfile這種更加簡潔的設(shè)定形式,使用以下指令能自動把Caddyfile轉(zhuǎn)換成JSON設(shè)定;

    caddy adapter

    我們可以先建立一個名稱為Caddyfile的文件,檔案內(nèi)容如下,然後再用caddy adapter將它轉(zhuǎn)換為JSON配置,再使用caddy reload使配置生效,該配置將監(jiān)聽2015端口,並返回Hello, world!;

    :2015
    
    respond "Hello, world!"

    然後我們使用curl命令訪問localhost:2015,將返回指定的信息;

    Nginx的Web伺服器caddy怎麼使用

    當(dāng)然我們也可以使用Caddy提供的Admin API來查看配置信息,使用如下命令即可;

    curl localhost:2019/config/

    當(dāng)前JSON配置如下,如果你直接使用JSON配置的話需要書寫如下配置,使用Caddyfile確實方便很多!

    {
    	"apps": {
    		"http": {
    			"servers": {
    				"srv0": {
    					"listen": [":2015"],
    					"routes": [{
    						"handle": [{
    							"body": "Hello, world!",
    							"handler": "static_response"
    						}]
    					}]
    				}
    			}
    		}
    	}
    }

    Caddyfile基本語法

    下面案例將使用Caddyfile來進(jìn)行配置,我們有必要了解下它的語法,Caddyfile的具體語法規(guī)則如下。

    Nginx的Web伺服器caddy怎麼使用

    介紹下上圖的關(guān)鍵字,有助於理解。

    ##可以重複使用的設(shè)定片段#定義好後認(rèn)可以透過import關(guān)鍵字引用Site Block單一網(wǎng)站設(shè)定透過file_server可以設(shè)定靜態(tài)代理,透過reverse_proxy可以設(shè)定動態(tài)代理Matcher definition匹配定義預(yù)設(shè)指令會產(chǎn)生全域影響,透過它可以指定影響範(fàn)圍Comment註解使用#符號開頭Site address網(wǎng)站位址預(yù)設(shè)使用HTTPS,如需開啟HTTP,需要指定http://開頭#Directive指令指令賦予了Caddy強大的功能

    反向代理

    反向代理就是當(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的請求代理到我的文檔項目中,對mall.macrozheng.com的請求代理到mall的前端項目中。

    首先我們修改下本機(jī)的host文件:

    192.168.3.106 docs.macrozheng.com
    192.168.3.106 mall.macrozheng.com

    然后將我們的文檔項目和mall前端項目上傳到Caddy的html目錄中去,并進(jìn)行解壓操作:

    Nginx的Web伺服器caddy怎麼使用

    修改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格式化并重寫配置即可解決;

    Nginx的Web伺服器caddy怎麼使用

    通過docs.macrozheng.com即可訪問部署好的文檔項目了:

    Nginx的Web伺服器caddy怎麼使用

    通過mall.macrozheng.com即可訪問到部署好的前端項目了。

    Nginx的Web伺服器caddy怎麼使用

    動態(tài)代理

    動態(tài)代理就是把代理服務(wù)器的請求轉(zhuǎn)發(fā)到另一個服務(wù)上去,這里我們將把對api.macrozheng.com的請求代理到演示環(huán)境的API服務(wù)上去。

    首先我們修改下本機(jī)的host文件,添加如下規(guī)則

    192.168.3.106 api.macrozheng.com

    修改Caddyfile文件,使用如下配置,修改完成后使用caddy reload命令刷新配置;

    http://api.macrozheng.com {
            reverse_proxy http://admin-api.macrozheng.com
    }

    之后通過api.macrozheng.com/swagger-ui.html即可訪問到mall-admin的API文檔頁面了。

    Nginx的Web伺服器caddy怎麼使用

    文件壓縮

    如果我們的服務(wù)器帶寬比較低,網(wǎng)站訪問速度會很慢,這時我們可以通過讓Caddy開啟Gzip壓縮來提高網(wǎng)站的訪問速度。這里我們以mall的前端項目為例來演示下它的提速效果。

    我們需要修改Caddyfile文件,使用encode指令開啟Gzip壓縮,修改完成后使用caddy reload命令刷新配置;

    http://mall.macrozheng.com {
            root * /mydata/caddy/html/mall
            encode {
                gzip
            }
            file_server browse
    }

    有個比較大的JS文件壓縮前是1.7M;

    Nginx的Web伺服器caddy怎麼使用

    壓縮后為544K,訪問速度也有很大提示;

    Nginx的Web伺服器caddy怎麼使用

    另外我們可以看下響應(yīng)信息,如果有Content-Encoding: gzip這個響應(yīng)頭表明Gzip壓縮已經(jīng)啟用了。

    Nginx的Web伺服器caddy怎麼使用

    地址重寫

    有的時候我們的網(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去。

    按目錄劃分

    有時候我們需要使用同一個域名來訪問不同的前端項目,這時候就需要通過子目錄來區(qū)分前端項目了。

    比如說我們需要按以下路徑來訪問各個前端項目;

    www.macrozheng.com #訪問文檔項目
    www.macrozheng.com/admin #訪問后臺項目
    www.macrozheng.com/app #訪問移動端項目

    我們需要修改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
            }
    }

    HTTPS

    Caddy能自動支持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上安裝一樣了。

    Nginx的Web伺服器caddy怎麼使用

    以上是Nginx的Web伺服器caddy怎麼使用的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

    本網(wǎng)站聲明
    本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

    熱AI工具

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發(fā)環(huán)境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網(wǎng)頁開發(fā)工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Laravel 教程
    1597
    29
    PHP教程
    1488
    72
    NGINX與Apache:Web服務(wù)器的比較分析 NGINX與Apache:Web服務(wù)器的比較分析 Apr 21, 2025 am 12:08 AM

    NGINX更適合處理高并發(fā)連接,而Apache更適合需要復(fù)雜配置和模塊擴(kuò)展的場景。1.NGINX以高性能和低資源消耗著稱,適合高并發(fā)。2.Apache以穩(wěn)定性和豐富的模塊擴(kuò)展聞名,適合復(fù)雜配置需求。

    nginx和apache:了解關(guān)鍵差異 nginx和apache:了解關(guān)鍵差異 Apr 26, 2025 am 12:01 AM

    NGINX和Apache各有優(yōu)劣,選擇應(yīng)基於具體需求。 1.NGINX適合高並發(fā)場景,因其異步非阻塞架構(gòu)。 2.Apache適用於需要復(fù)雜配置的低並發(fā)場景,因其模塊化設(shè)計。

    php寫完代碼怎麼執(zhí)行 php代碼執(zhí)行的幾種常見方式 php寫完代碼怎麼執(zhí)行 php代碼執(zhí)行的幾種常見方式 May 23, 2025 pm 08:33 PM

    PHP代碼可以通過多種方式執(zhí)行:1.使用命令行,直接輸入“php文件名”執(zhí)行腳本;2.通過Web服務(wù)器,將文件放入文檔根目錄並通過瀏覽器訪問;3.在IDE中運行,利用內(nèi)置調(diào)試工具;4.使用在線PHP沙箱或代碼執(zhí)行平臺進(jìn)行測試。

    安裝Nginx後配置文件路徑及初始設(shè)置 安裝Nginx後配置文件路徑及初始設(shè)置 May 16, 2025 pm 10:54 PM

    了解Nginx的配置文件路徑和初始設(shè)置非常重要,因為它是優(yōu)化和管理Web服務(wù)器的第一步。 1)配置文件路徑通常是/etc/nginx/nginx.conf,使用nginx-t命令可以查找並測試語法。 2)初始設(shè)置包括全局設(shè)置(如user、worker_processes)和HTTP設(shè)置(如include、log_format),這些設(shè)置允許根據(jù)需求進(jìn)行定制和擴(kuò)展,錯誤配置可能導(dǎo)致性能問題和安全漏洞。

    linux如何限制用戶資源? ulimit怎麼配置? linux如何限制用戶資源? ulimit怎麼配置? May 29, 2025 pm 11:09 PM

    Linux系統(tǒng)通過ulimit命令限制用戶資源,防止資源過度佔用。 1.ulimit是shell內(nèi)置命令,可限製文件描述符數(shù)(-n)、內(nèi)存大?。?v)、線程數(shù)(-u)等,分為軟限制(當(dāng)前生效值)和硬限制(最高上限)。 2.臨時修改直接使用ulimit命令,如ulimit-n2048,但僅對當(dāng)前會話有效。 3.永久生效需修改/etc/security/limits.conf及PAM配置文件,並添加sessionrequiredpam_limits.so。 4.systemd服務(wù)需在unit文件中設(shè)置Lim

    Debian Nginx配置技巧有哪些 Debian Nginx配置技巧有哪些 May 29, 2025 pm 11:06 PM

    在Debian系統(tǒng)上配置Nginx時,以下是一些實用的技巧:配置文件的基本結(jié)構(gòu)全局設(shè)置部分:定義影響整個Nginx服務(wù)的行為參數(shù),比如工作線程數(shù)量及運行用戶權(quán)限。事件處理部分:決定Nginx如何應(yīng)對網(wǎng)絡(luò)連接,是提升性能的關(guān)鍵配置。 HTTP服務(wù)部分:包含大量與HTTP服務(wù)相關(guān)的設(shè)定,可內(nèi)嵌多個server和location塊。核心配置選項worker_connections:定義每個工作線程所能處理的最大連接數(shù),通常設(shè)為1024。 multi_accept:激活多連接接收模式,增強並發(fā)處理的能力。 s

    NGINX的目的:服務(wù)Web內(nèi)容等 NGINX的目的:服務(wù)Web內(nèi)容等 May 08, 2025 am 12:07 AM

    nginxserveswebcontentandactsasareverseproxy,loadBalancer和more.1)效率高效的servesstaticContentLikeHtmlandImages.2)itfunctionsasareverseproxybalancer,and andginxenhanceperforfforfforfforfforfforffrenfcaching.4)

    NGINX故障排除:診斷和解決常見錯誤 NGINX故障排除:診斷和解決常見錯誤 May 05, 2025 am 12:09 AM

    Nginx常見錯誤的診斷與解決方法包括:1.查看日誌文件,2.調(diào)整配置文件,3.優(yōu)化性能。通過分析日誌、調(diào)整超時設(shè)置和優(yōu)化緩存及負(fù)載均衡,可以有效解決404、502、504等錯誤,提高網(wǎng)站穩(wěn)定性和性能。

    See all articles
    • <ruby id="6nlax"></ruby>
      關(guān)鍵字解釋使用
      Global options block伺服器全域設(shè)定可用來設(shè)定是否啟用HTTPS和Admin API等
      #Snippet
      <ruby id="6nlax"></ruby>
      <center id="6nlax"><b id="6nlax"></b></center>

      <dfn id="6nlax"></dfn>
        <pre id="6nlax"><td id="6nlax"></td></pre>