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

安装

系统要求: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://dl.onecdn.cn/%E5%A4%A9%E7%BF%BC%E4%BA%91/Shell/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://dl.onecdn.cn/%E5%A4%A9%E7%BF%BC%E4%BA%91/Shell/caddy_install.sh && bash caddy_install.sh uninstall

网站配置文件

配置文件为Caddyfile,列举几种caddyconf的写法

1、本地访问80

http://ip::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端口,然后重启即可。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
常用脚本

BBR原版/BBR魔改/BBR Plus + 锐速 等四合一安装脚本

2020-8-21 0:14:02

常用脚本

Socat一键安装脚本,可转发TCP和UDP流量

2020-8-29 12:26:27

版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处! 本文链接:https://www.moerats.com/archives/404/
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索