• 欢迎访问年轻的斯基网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏年轻的斯基吧

一个极简的HTTP Server: Caddy一键安装脚本,带网站配置教程

网络资源 liam 7个月前 (02-26) 129次浏览 0个评论 扫描二维码

说明:这几天一直在看逗比根据地,发现Caddy很是强大,是一个极简的HTTP服务器,支持HTTP/2静态网页服务器,安装也很快,在很多方面都可以不用安装时间很长的lnmplamp环境了,配置文件也很简单,同时还有一些有趣的扩展,可以非常方便的搭建一个HTTP服务器。

安装

系统要求: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/ToyoDAdoubiBackup/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/ToyoDAdoubiBackup/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,列举几种caddyconf的写法

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 } 

例如,通过IP80端口访问目录:

: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 

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:,检查下防火墙端口,需要开启80443端口,然后重启即可。


年轻的斯基 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一个极简的HTTP Server: Caddy一键安装脚本,带网站配置教程
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址