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

背景:购买了greenvps,从GD上转过来了几十快上百G文件,换了几个账户共享拷贝才搞成的。最后发现这个Debian 9.3 Minimal x64系统最小化很坑啊,Debian 9.3 Minimal x64系统最小化,功能不完整,lnmp、 lamp、宝塔安装都失败 root目录下文件怎么下载?
包括apt upgrade -y
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named ‘encodings’
Current thread 0x00007f31d….. (most recent call first):
Aborted
E: Sub-process /usr/bin/apt-listchanges –apt || test $? -lt 10 returned an error code (1)
E: Failure running script /usr/bin/apt-listchanges –apt || test $? -lt 10
百度了很多说是Python没设置好,但是安装Python也这样提示,晕了
求教大神都无果,没办法再买了一台,1H/2T/500G硬盘/1T流量 $30/年。选择了centos 8.0系统安装lamp 折腾了两次还是成功了。原来的这台为了文件保留啊,大文件就在root 目录下,我用另外一个VPS 来wget http://这台IP/文件,是不对的路径的…最后hostloc 大神给了一条路。
wget https://github.com/caddyserver/caddy/releases/download/v2.4.5/caddy_2.4.5_linux_amd64.tar.gz && tar xvzf caddy*.tar.gz&&chmod +x caddy
./caddy file-server -browse -listen :8080 -root /root
极简的HTTP Server: Caddy一键安装脚本,带网站配置教程
发现Caddy
很是强大,是一个极简的HTTP
服务器,支持HTTP/2
静态网页服务器,安装也很快,在很多方面都可以不用安装时间很长的lnmp
,lamp
环境了,配置文件也很简单,同时还有一些有趣的扩展,可以非常方便的搭建一个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
,列举几种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
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.367783.net/resource/41833.html
Caddy Web Server一键管理(开始/停止/安装/更新/卸载)脚本
说明:Caddy
是一个极简而强大的HTTP
服务器,支持HTTP/2
静态网页服务器,安装也快,之前也发过逗比的一个Caddy
脚本,参考:一个极简的HTTP Server: Caddy一键安装脚本,不过该脚本有点简洁,只提供安装+运行功能,现在再发个功能比较全的Caddy
脚本,该脚本是爱学习的博主无意间在国外技术网站看到的,而国内很难找到这么齐全的,所以就分享给大家,且该脚本支持开始、停止、安装、更新、卸载等功能。
安装
Github地址:https://github.com/sayem314/Caddy-Web-Server-Installer
系统要求:Ubuntu 14.x
、15.x
、16.x
,Debian 7.x
、8.x
、9.x
,CentOS 6.8
、7.2
。
运行以下命令:
wget https://git.io/vra5C -O - -o /dev/null|bash
然后使用下列命令进行操作:
caddy start #开启Caddy Web Server
caddy stop #停止Caddy Web Server
caddy reload #重载Caddy Web Server
caddy restart #重启Caddy Web Server
caddy status #查看Caddy Web Server状态
caddy install #安装Caddy Web Server
caddy edit #编辑配置文件Caddyfile
caddy service #使Caddy Web Server成为一项服务(upstart/systemd)
caddy update #升级Caddy Web Server
caddy delete #卸载Caddy and data
caddy about #关于Caddy Web Server
caddy version #检测脚本/Caddy/PHP5-fpm版本信息
安装插件命令:
caddy install http.cache,http.filemanager,http.ipfilter,http.ratelimit
安装caddy
的时候会要求你输入域名,邮箱(帮你自动签发ssl
),然后使用命令启动caddy
即可!
虚拟主机文件夹:/var/caddywww
配置文件夹:/etc/Caddyfile
更多插件参考:https://caddyserver.com/download。