簡(jiǎn)單粗暴的Caddy Server 使用介紹
Caddy是一個(gè)Go寫(xiě)的服務(wù)器軟件,官方的宣傳語(yǔ)“The HTTP/2 web server with automatic HTTPS”以及“Serve The Web Like It's 2016”簡(jiǎn)明表達(dá)了這個(gè)軟件的優(yōu)點(diǎn)和趨勢(shì),它擁有基本的apache或者nginx有的web server模塊,同時(shí)還有一些很有特色的功能,比如:
HTTP/2
Automatic HTTPS
Multi-core
Websockets
Markdown
IPv6
Git
…...
用Caddy我們就可以很方便的部署一個(gè)Markdown文本作為靜態(tài)網(wǎng)站訪問(wèn),或者它的Git指令完成代碼的自動(dòng)化部署,當(dāng)然它很大的特色就是它的語(yǔ)法非常簡(jiǎn)潔,比nginx還要簡(jiǎn)單,配置部署起來(lái)很方便,下面隨便舉幾個(gè)例子吧。
對(duì)網(wǎng)站添加BasicAuth,用戶名ryan,密碼 12345
basicauth / ryan 12345
用CORS解決跨域問(wèn)題
cors / {
origin http://allowedSite.com
origin http://anotherSite.org https://anotherSite.org
methods POST,PUT
allow_credentials false
max_age 3600
allowed_headers X-Custom-Header,X-Foobar
exposed_headers X-Something-Special,SomethingElse
}
IP過(guò)濾
ipfilter / {
rule block
ip 212.10.15.0-255 213.10.15.0-10 5.23.4.24
blockpage /local/data/default.html
}
HTTPS 配置
tls ../cert.pem ../key.pem
實(shí)在太簡(jiǎn)單了配置起來(lái),具體還有其他簡(jiǎn)潔到哭的指令可以看官方的User Guide,很快就刷完了。
既然Caddy自動(dòng)部署https,而且是通過(guò)Let's Encrypt,那么就實(shí)踐一下,本博客是用Ghost 搭建,Nginx代理的,現(xiàn)在就改用Caddy,并支持https,步驟大體如下:
證書(shū)申請(qǐng)請(qǐng)移步
Caddy 安裝很簡(jiǎn)單,直接下載 https://caddyserver.com/docs/getting-started
配置Caddyfile,看起來(lái)指令簡(jiǎn)潔明了
https://www.yuansir-web.com, http://www.yuansir-web.com, http://yuansir-web.com {
redir https://yuansir-web.com{uri}
tls yuansir88@gmail.com
}
https://yuansir-web.com {
gzip
errors {
log /var/log/caddy/yuansir-web.error.log {
size 50
age 30
keep 5
}
}
log /var/log/caddy/yuansir-web.access.log
tls yuansir88@gmail.com
proxy / http://127.0.0.1:2368 {
proxy_header X-Real-IP {remote}
proxy_header HOST {host}
proxy_header X-Forwarded-Proto {scheme}
}
}
用supservisor來(lái)管理Caddy運(yùn)行
[program:caddy] command=/usr/bin/caddy -conf="/var/www/Caddyfile" directory=/var/www ; directory to cwd to before exec (def no cwd) autostart=true ; start at supervisord start (default: true) autorestart=unexpected ; whether/when to restart (default: unexpected) startsecs=1 ; number of secs prog must stay running (def. 1) startretries=3 ; max # of serial start failures (default 3) exitcodes=0,2 ; 'expected' exit codes for process (default 0,2) stopsignal=QUIT ; signal used to kill process (default TERM) stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) stopasgroup=false ; send stop signal to the UNIX process group (default false) user=www ; setuid to this UNIX account to run the program redirect_stderr=true ; redirect proc stderr to stdout (default false) stdout_logfile=/var/log/caddy.log ; stdout log path, NONE for none; default AUTO stderr_logfile=/var/log/caddyerr.log ; stderr log path, NONE for none; default AUTO
將網(wǎng)站的靜態(tài)資源CDN換成支持https的CDN
好了,就這么簡(jiǎn)單,Nginx切換成Caddy,并支持https了,真是多快好省。
相關(guān)文章
將下載到本地的JAR包手動(dòng)添加到Maven倉(cāng)庫(kù)的方法
下面小編就為大家分享一篇將下載到本地的JAR包手動(dòng)添加到Maven倉(cāng)庫(kù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-11-11
云服務(wù)器(Linux)安裝部署Kafka的詳細(xì)過(guò)程
這篇文章主要介紹了云服務(wù)器(Linux)安裝部署Kafka的詳細(xì)過(guò)程,kafka的安裝需要依賴于jdk,需要在服務(wù)器上提前安裝好該環(huán)境,這里使用用jdk1.8,本文給大家詳細(xì)介紹感興趣的朋友跟隨小編一起看看吧2022-11-11
虛擬主機(jī)應(yīng)該如何解決電信網(wǎng)通間互聯(lián)互通
電信和網(wǎng)通兩大基礎(chǔ)網(wǎng)絡(luò),人為地割裂了整個(gè)中國(guó)的網(wǎng)絡(luò)。無(wú)論是選擇把網(wǎng)站托管在電信、還是網(wǎng)通,都等于是在拒絕處于另外一個(gè)網(wǎng)絡(luò)中的客戶,因?yàn)閷?shí)在太慢了2011-10-10
centOs6.9服務(wù)器版本安裝圖解(包含java和mysql)
這篇文章主要介紹了centOs6.9服務(wù)器版本安裝圖解(包含java和mysql),需要的朋友可以參考下2017-06-06
云服務(wù)器Centos中安裝Docker的方法小結(jié)
Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,利用操作系統(tǒng)本身已有的機(jī)制和特性,可以實(shí)現(xiàn)遠(yuǎn)超傳統(tǒng)虛擬機(jī)的輕量級(jí)虛擬化,CentOS是Linux發(fā)行版之一,本文給大家介紹云服務(wù)器Centos中安裝Docker的方法,感興趣的朋友一起看看吧2023-12-12
HTTP 錯(cuò)誤 403.1禁止訪問(wèn):禁止執(zhí)行訪問(wèn)的完美解決方法
這篇文章主要介紹了HTTP 錯(cuò)誤 403.1禁止訪問(wèn):禁止執(zhí)行訪問(wèn)的完美解決方法,需要的朋友可以參考下2016-11-11

