日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux下配置Caddy具體方法

Caddy是一款快速,易用的生產(chǎn)型開源Web服務(wù)器,使您的工作效率更高。適用于Windows,Mac,Linux,BSD,Solaris和Android,本篇文章重點(diǎn)為大家講解一下Linux下配置Caddy具體方法

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、古縣網(wǎng)站維護(hù)、網(wǎng)站推廣。

安裝

用過 golang 的應(yīng)該都知道,golang 程序基本上不會(huì)有各種依賴,都是光禿禿一個(gè)可執(zhí)行程序,cp 到 /usr/local/bin就算安裝完成了,所以說安裝 caddy 是很簡(jiǎn)單的,我給出三種方法。

腳本安裝” data-anchor-id=”vca7″>

腳本安裝

curl -s https://getcaddy.com | bash

caddy 官方給出了一個(gè)安裝腳本,執(zhí)行上面的命令就可以一鍵安裝 caddy,等執(zhí)行結(jié)束后,使用 which caddy,可以看到 caddy 已經(jīng)被安裝到了 /usr/local/bin/caddy

手動(dòng)安裝

https://caddyserver.com/download 點(diǎn)這個(gè)鏈接進(jìn)入到 caddy 官網(wǎng)的下載界面,網(wǎng)頁左側(cè)可以選擇平臺(tái)和插件,如果在 Linux 服務(wù)器上使用的話,platform 選擇 Linux 64-bit 就可以了,plugins 如果暫時(shí)不需要的話,可以不選。然后點(diǎn)擊下面的 DOWNLOAD 按鈕,就下載到 caddy 了。同理,解壓之后用 cp 命令放到 /usr/local/bin/caddy 就完成了安裝。

源碼安裝

go get github.com/mholt/caddy/caddy

對(duì)于安裝了 golang 編譯器的同學(xué),只需要執(zhí)行 go get 就能到 $GOPATH/bin 里,是否 cp 到 /usr/local/bin 里就看心情了。使用源碼安裝可以安裝到最新版本的 caddy,功能上一般是最新的,而且因?yàn)槭潜镜鼐幾g,性能可能會(huì)稍微高一些,但是可能會(huì)存在不穩(wěn)定的現(xiàn)象。

配置

臨時(shí)文件服務(wù)器

Caddy 的配置文件叫做 Caddyfile,Caddy 不強(qiáng)制你把配置文件放到哪個(gè)特定文件夾,默認(rèn)情況下,把 Caddyfile 放到當(dāng)前目錄就可以跑起來了,如下:

echo 'localhost:8888' >> Caddyfile
echo 'gzip' >> Caddyfile
echo 'browse' >> Caddyfile
caddy

在隨便一個(gè)目錄里執(zhí)行上面代碼,然后在瀏覽器里打開 http://localhost:8888 發(fā)現(xiàn) caddy 已經(jīng)啟動(dòng)了一個(gè)文件服務(wù)器。當(dāng)臨時(shí)需要一個(gè) fileserver 的時(shí)候(比如共享文件),使用 caddy 會(huì)很方便。

生產(chǎn)環(huán)境使用

當(dāng)然了,在生產(chǎn)環(huán)境使用的時(shí)候就不能這么草率的把配置文件放到當(dāng)前目錄了,一般情況下會(huì)放到 /etc/caddy 里。

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

除了配置文件,caddy 會(huì)自動(dòng)生成 ssl 證書,需要一個(gè)文件夾放置 ssl 證書。

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

因?yàn)?ssl 文件夾里會(huì)放置私鑰,所以權(quán)限設(shè)置成 770 禁止其他用戶訪問。

最后,創(chuàng)建一下放置網(wǎng)站文件的目錄,如果已經(jīng)有了,就不需要?jiǎng)?chuàng)建了。

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

創(chuàng)建好這些文件和目錄了之后,我們需要把 caddy 配置成一個(gè)服務(wù),這樣就可以開機(jī)自動(dòng)運(yùn)行,并且管理起來也方便。因?yàn)槟壳按蠖鄶?shù)發(fā)行版都使用 systemd 了,所以這里只講一下如何配置 systemd,不過 caddy 也支持配置成原始的 sysvinit 服務(wù),具體方法看這里。

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 # 設(shè)置 caddy 服務(wù)自啟動(dòng)

sudo systemctl status caddy.service # 查看 caddy 狀態(tài)

Caddyfile

基本的安裝配置搞定之后,最重要的就是如何寫 Caddyfile了??梢灾苯?vim /etc/caddy/Caddyfile 來修改 Caddyfile,也可以再自己電腦上改好然后 rsync 到服務(wù)器上。如果修改了 Caddyfile 發(fā)現(xiàn)沒有生效,是需要執(zhí)行一下 sudo systemctl restart cadd.service 來重啟 caddy 的。

Caddyfile 的格式

Caddfile的格式還是比較簡(jiǎn)單的,首先第一行必須是網(wǎng)站的地址,例如:

localhost:8080或lengzzz.com

地址可以帶一個(gè)端口號(hào),那么 caddy 只會(huì)在這個(gè)端口上開啟 http 服務(wù),而不會(huì)開啟 https,如果不寫端口號(hào)的話,caddy 會(huì)默認(rèn)綁定 80 和 443 端口,同時(shí)啟動(dòng) http 和 https 服務(wù)。

地址后面可以再跟一大堆指令(directive)。Caddyfile 的基本格式就是這樣,由一個(gè)網(wǎng)站地址和指令組成,是不是很簡(jiǎn)單。

指令

指令的作用是為網(wǎng)站開啟某些功能。指令的格式有三種,先說一下最簡(jiǎn)單的不帶參數(shù)的指令比如:

railgun.moe # 沒錯(cuò),moe后綴的域名也可以哦 gzip

第二行的 gzip 就是一個(gè)指令,它表示打開 gzip 壓縮功能,這樣網(wǎng)站在傳輸網(wǎng)頁是可以降低流量。

第二種指令的格式是帶簡(jiǎn)單參數(shù)的指令:

railgun.moe gzip log /var/log/caddy/access.log tls lengz@lengzzz.com root /var/www/

第三行,log 指令會(huì)為網(wǎng)站開啟 log 功能,log 指令后的參數(shù)告訴 caddy log 文件存放的位置。第四行的 tls 指令告訴 caddy 為網(wǎng)站開啟 https 并自動(dòng)申請(qǐng)證書,后面的 email 參數(shù)是告知 CA 申請(qǐng)人的郵箱。(caddy 會(huì)默認(rèn)使用 let’s encrypt 申請(qǐng)證書并續(xù)約,很方便吧)

另外,簡(jiǎn)單參數(shù)也可能不只一個(gè),比如 redir 指令:

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

上面的 redir 指令帶了三個(gè)參數(shù),意思是把所有的請(qǐng)求使用 301 重定向到 https://lengzzz.com/archive/xxx,這個(gè)指令在給網(wǎng)站換域名的時(shí)候很有用。另外 tls 指令變了,不單單傳 email一個(gè)參數(shù), 而是分別傳了證書和私鑰的路徑,這樣的話 caddy 就不會(huì)去自動(dòng)申請(qǐng)證書,而是使用路徑給出的證書了。

在這個(gè)例子里還使用了 {uri} 這樣的占位符(placeholder),詳細(xì)的列表可以在這里查詢到:https://caddyserver.com/docs/placeholders。

最后一種指令是帶復(fù)雜參數(shù)的,這種指令包含可能很多參數(shù),所以需要用一對(duì)花括號(hào)包起來,比如 header 指令:

railgun.moe
gzip
log /var/log/caddy/access.log
tls lengz@lengzzz.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}
}

6-10 行的 header 指令代表為所有的 /api/xxx 的請(qǐng)求加上 Access-Control-Allow-Origin 和 Access-Control-Allow-Methods 這兩個(gè) header,從而能支持 javascript 跨域訪問 ,第 9 行代表刪除 Server header,防止別人看到服務(wù)器類型。

11-13 行使用了 fastcgi 指令,代表把請(qǐng)求通過 fastcgi 傳給 php,ruby 等后端程序。

14-15 行,使用了 rewrite 指令,這個(gè)指令的作用是 服務(wù)器內(nèi)部重定向 在下面的參數(shù) to 后面,又跟了三個(gè)參數(shù),這個(gè)功能上有點(diǎn)類似 nginx 的 try_files 。告訴 caddy 需要先查看網(wǎng)址根目錄 /var/www 里有沒有 {path} 對(duì)應(yīng)的文件,如果沒有再查看有沒有 {path} 對(duì)應(yīng)的目錄,如果都沒有,則轉(zhuǎn)發(fā)給 index.php 入口文件。這個(gè)功能一般會(huì)用在 PHP 的 MVC 框架上使用。

隨著一步步完善這個(gè) Caddyfile,目前這個(gè)版本的 Caddyfaile 已經(jīng)可以直接在網(wǎng)站中使用了。

多 HOST 網(wǎng)站

剛才說的一直都是單個(gè)域名的網(wǎng)址,那么如果在同一個(gè)服務(wù)器上部署多個(gè)域名的網(wǎng)站呢?很簡(jiǎn)單,只需要在域名后面跟一個(gè)花括號(hào)擴(kuò)起來就可以了,如下:

railgun.moe {
gzip
log /var/log/caddy/railgun_moe.log
tls lengz@lengzzz.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}
}
}
lengzzz.com { tls lengz@lengzzz.com
log /var/log/caddy/lengzzz_com.log
redir / https://railgun.moe/{uri} 301
}

好了,基本的 caddy 配置就這些,詳細(xì)的內(nèi)容可以去官網(wǎng)上看文檔學(xué)習(xí)。


文章標(biāo)題:Linux下配置Caddy具體方法
鏈接分享:http://www.dlmjj.cn/article/djdiojh.html