Caddy 是一個支持 HTTP/2 的跨平臺 Web 服務(wù)器,而且它也可以做反向代理但是與Nginx不一樣的是,它沒有刻意去追求高性能,而且另辟蹊徑以打造一個簡單易用的靜態(tài)服務(wù)器為目標(biāo)。
它的slogan之一是
Serve The Web Like It's 2017
總的來說,就是配置簡單,功能多樣。下面是它的一些功能,而我們今天就使用它來為普通http網(wǎng)站加上https支持,而且非常簡單,其原理是使用了Let's Encrypt免費SSL證書來實現(xiàn)HTTPS,Let's Encrypt是一個免費SSL證書提供開源組織,它的證書有時間限制到期需要續(xù)期,Caddy可以自動續(xù)期
首先我們試試先安裝Caddy。
打開官網(wǎng)進(jìn)行下載:https://caddyserver.com/download,首先是選擇你需要的功能特性,我們可以在這里看到caddy的功能插件是非常多的,而且可定制化類似于spring boot。這里我們只是為服務(wù)器加上Https支持,按默認(rèn)配置即可, 第二步是捐贈,大家有閑錢就捐助支持下吧!
當(dāng)然我們也可以不進(jìn)行捐助,在第三步根據(jù)自己的系統(tǒng)平臺下載Caddy。接下來是配置Caddy,windows和Linux等各平臺下操作大致一樣,有特別的地方我再說明。
Caddy的思想是可以直接把文件夾“轉(zhuǎn)成”服務(wù)器,我們在任一個文件夾下執(zhí)行caddy(需要添加環(huán)境變量,如果 沒有添加需要帶上文件路徑)就能把這個文件夾轉(zhuǎn)成一個服務(wù)器根目錄。
windows添加環(huán)境變量:將caddy的目錄添加到環(huán)境變量的path里。
Linux環(huán)境:直接添加到/etc/profile里,export PATH="$PATH:/你的Caddy路徑"
就這樣服務(wù)就啟動了??墒侨绻覀冃枰渲脜?shù)呢?有兩種方式,一種是在命令后面加參數(shù),一種是使用配置文件,在安裝目錄下新建文件直接叫Caddyfile,無后綴即可,這個就是配置文件。當(dāng)然也可以把配置文件放在其他路徑,啟動時加參數(shù)即可
caddy -conf="/usr/local/app/Caddyfile"
在這個配置文件里,我們配置上HTTPS的支持即可,詳情訪問https://caddyserver.com/docs/automatic-https
https://你的網(wǎng)址:端口
{
gzip #開啟gzip壓縮
log /logs/caddy/access.log #訪問日志的配置
errors { #錯誤日志的配置
log /logs/caddy/error.log {
size 50 #50M以后,自動分割
age 30 #分割文件最多保留30天
keep 5 #最多保留5個分割文件
}
}
tls **@qq.com { #啟用HTTPS,并使用使用此賬戶自動申請Let's Encrypt的HTTPS證書
protocols tls1.0 tls1.2 #設(shè)置最低和最高的https協(xié)議
}
proxy / http://172.11.22.130:82 { #反向代理到82端口
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
}
然后我們啟動服務(wù),就配置成功了!
這里需要注意兩點:
1、HTTPS使用的是443端口,如果有軟件在占用需要關(guān)閉,比如SVN服務(wù)器
2、Windows上使用必須要有配置文件Caddyfile,否則無法啟動