某哆啦A梦存档
链接 https://www.moerats.com/archives/404/
安装
系统要求:CentOS 6+
/Debian 6+
/Ubuntu 14.04 +
。推荐Debian 7 x64
。
本脚本只是一个一键安装+运行控制的脚本,没有其他管理虚拟主机等功能。
执行下面的代码安装Caddy
,如果想要安装其他扩展可以把名字加到命令后面(bash caddy_install.sh install xxx,xxx,xxx,
扩展列表点击查看)。
wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh #备用地址 wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
使用说明
启动:/etc/init.d/caddy start 停止:/etc/init.d/caddy stop 重启:/etc/init.d/caddy restart 查看状态:/etc/init.d/caddy status 查看Caddy启动日志:tail -f /tmp/caddy.log 安装目录:/usr/local/caddy Caddy配置文件位置:/usr/local/caddy/Caddyfile Caddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/
升级Caddy或者更新扩展
只需要重新执行你当初安装时候用的命令即可,会覆盖安装最新的Caddy+
扩展。
卸载Caddy
卸载不会删除虚拟主机的内容,只会删除Caddy
自身和配置文件。
wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && bash caddy_install.sh uninstall #备用地址 wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall
网站配置文件
配置文件为Caddyfile
,列举几种caddy
的conf
的写法
1、本地访问80
:80
2、单网站访问
example.com root /usr/local/caddy/www //更多模块
2、多网站
example.com { gzip root /usr/local/caddy/www //更多模块 }
常用基本组成模块,均写入到conf
站点配置中。
#log日志 log /usr/local/caddy/www/example.log #目录访问 browse #gzip压缩 gzip #自主ssl证书 tls /path/ssl/example.com.crt /path/ssl/example.com.key #访问口令认证(用户emiria,密码abc123) basicauth / emiria abc123 #跳转功能 redir http://example.com{url} #自定义错误页面 errors { 404 404.html 500 /usr/local/caddy/www/500.html }
例如,通过IP
即80
端口访问目录:
:80 { root /usr/local/caddy/www gzip browse }
也可以直接执行命令写入,以下是一个命令,直接复制粘贴即可。
echo ":80 { root /usr/local/caddy/www gzip browse }" > /usr/local/caddy/Caddyfile
更多配置参考:https://caddyserver.com/tutorial/caddyfile
设置文档参考:https://caddyserver.com/docs
常见问题
1、Caddy启动失败,打开ip访问地址显示的是 It works !
一些系统会自带apache2
,而apache2
会占用80
端口,导致Caddy
无法绑定端口,所以只要关掉就好了。
netstat -lntp # 我们可以通过这个命令查看是不是被其他软件占用了80端口。
不过apache2
会默认开机自启动,如果不需要可以关闭自启动或者卸载apache2
。
停止Apache2
# CentOS系统 /etc/init.d/httpd stop # Debian/Ubuntu系统 /etc/init.d/apache2 stop # 尝试使用上面代码关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。 kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
取消开机自启动
# CentOS 系统 chkconfig --del httpd # Debian/Ubuntu 系统 update-rc.d -f apache2 remove
卸载Apache2
# CentOS 系统 yum remove httpd # Debian/Ubuntu 系统 apt-get remove --purge apache2
关闭Apache2
后,就可以尝试启动Caddy
,并试试能不能打开网页。
/etc/init.d/caddy start
链接 https://www.moerats.com/archives/404/
2、启动Caddy后,无法访问
这个可能是防火墙的问题,开放防火墙端口即可。
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT # 删除防火墙规则,内容一样把 -I 换成 -D 就行了: iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT
3、SSL证书签发失败
比如报错acme: error: 400 :: urn:ietf:params:acme:error:connection :: Error getting validation data, url:
,检查下防火墙端口,需要开启80
和443
端口,然后重启即可。
某书存档
链接 https://www.jianshu.com/p/9909c00cf1b2
1.caddy一键脚本安装
caddy官网 :https://caddyserver.com/
手动下载:https://caddyserver.com/download
Github:https://github.com/mholt/caddy
官方脚本安装
curl https://getcaddy.com | bash -s personal
若需安装插件
curl https://getcaddy.com | bash -s personal tls.dns.cloudflare
2.配置caddy
创建配置文件放到 /etc/caddy 目录
sudo mkdir /etc/caddy
sudo touch /etc/caddy/Caddyfile
sudo chown -R root:www-data /etc/caddy
配置ssl证书目录
sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy
配置网站目录
sudo mkdir /var/www
sudo chown www-data:www-data /var/www
配置 systemd
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
sudo systemctl daemon-reload
sudo systemctl enable caddy.service
sudo systemctl status caddy.service
创建Caddfile配置文件,修改Caddfile文件
touch /etc/caddy/Caddyfile
vi /etc/caddy/Caddyfile
一个简单的websocket加静态网站配置
example.com {
root /var/www/
tls {
protocols tls1.1 tls1.2
}
proxy /caressr 127.0.0.1:10000 {
websocket
header_upstream -Origin
}
log /var/log/caddy/access.log
}
创建一个简单的HTML页面
echo ‘<h1>Hello World!</h1>’ | sudo tee /var/www/index.html
给log路径赋权
sudo chown www-data:www-data /var/log/caddy
上例是一个简单的websocket加静态网站配置。第一行为自己的域名,tls自动申请let’sencrypt ssl证书,后面可以不加邮箱会,protocols为tls协议版本。Caddfile更多配置详见官网。
3. 通过systemd管理caddy
sudo systemctl start caddy.service
sudo systemctl stop caddy.service
sudo systemctl restart caddy.service
sudo systemctl reload caddy.service
4.防火墙开启http和https端口
sudo firewall-cmd –permanent –zone=public –add-service=http
sudo firewall-cmd –permanent –zone=public –add-service=https
sudo firewall-cmd –reload
链接:https://www.jianshu.com/p/9909c00cf1b2
目前Caddyfile配置
域名 { #root /var/www log ./caddy.log proxy / http://域名 proxy /路径 localhost:端口 { websocket header_upstream -Origin } }