web 服务新秀 caddy 安装部署
2017-04-27 11:58
369 查看
Caddy 简介
Caddy是一个Go语言写的,开源好用Web服务器。它具有如下的一些功能:配置简单:Caddy服务器的运行可以通过Caddyfile配置文件进行配置。自动的HTTPS:它可以自动申请 Let's Encrypt 域名证书,并进行配置,自动定期更新,并且免费。
HTTP/2:默认支持HTTP/2(由Go标准库支持)
虚拟主机托管:Caddy支持TLS的SNI。可以在具有单个公网IP的同一台主机上部署多个不同的域名的服务。可以为Caddy服务的不同域名配置不同的证书和密钥。
QUIC支持:Caddy实验性地支持QUIC协议,以获取更好的性能。
良好的可扩展性:因此Caddy非常方便针对自己的需求做定制。
丰富的插件:丰富的插件,对解决业务需求提供帮助;
理念先进:caddy 在功能上就融入了devops; 相关的理念,服务本身就具备持续集成模块。
随处运行:这主要与Go应用程序的特性有关。Go的模块都被编译为静态库,Go的应用程序在编译为可执行文件时都是静态链接,依赖的动态库极少,这使得部署使用非常方便。
安装部署
首先要安装一下go运行环境
go官方项目地址:
https://golang.org/dl/下载
wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz解压
tar -C /usr/local -xzf go1.8.1.linux-amd64.tar.gz创建go home 目录
mkdir /root/go1.8设置环境变量
echo 'export GOROOT=$HOME/go1.8' >>/etc/profileecho 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profilesource /etc/profile
验证go 版本
go version go version go1.8.1 linux/amd64安装 caddy
新建用户,程序目录修改权限
useradd -M caddychsh -s /bin/false Caddymkdir -p /var/log/caddy/ #日志目录mkdir -p /etc/caddy/config #配置目录chown -R caddy /etc/caddy
chown -R caddy /var/log/caddy安全考虑:不推荐 Root运行:可以通过像这样使用setcap来监听端口号小于1024的端口:sudo setcap cap_net_bind_service=+ep ./caddy
直接运行命令如下(默认安装):
curl https://getcaddy.com | bash查看版本:
[root@hkjump ~]# caddy -version Caddy 0.10.0查看默认插件:
Caddy命令行接口。运行caddy -h 可以查看基本的帮助信息[root@hkjump ~]# caddy -pluginsServer types: http Caddyfile loaders: short flag default Other plugins: http.basicauth http.bind http.browse http.errors http.expvar http.ext http.fastcgi http.gzip http.header http.index http.internal http.log http.markdown http.maxrequestbody http.mime http.pprof http.proxy http.push http.redir http.rewrite http.root http.status http.templates http.timeouts http.websocket shutdown startup tls tls.storage.file
安装 hook.service,http.git 插件,方法如下;
curl https://getcaddy.com | bash -s hook.service,http.git配置开机启动
vim /etc/systemd/system/caddy.service[Unit] Description=Caddy Web Server Documentation=https://caddyserver.com/docs After=network.target [Service] User=caddy StartLimitInterval=86400 StartLimitBurst=5 LimitNOFILE=16535 ExecStart=/usr/local/bin/caddy -agree=true -conf=/etc/caddy/Caddyfile -pidfile=/var/run/caddy/caddy.pid -log=stderr PIDFile=/var/run/caddy/caddy.pid Restart=on-failure [Install] WantedBy=multi-user.target
服务开机启动相关设置
chmod 644 /etc/systemd/system/caddy.servicesystemctl enable caddy.service
systemctl start caddy.service
systemctl status caddy.service
参考文档
https://github.com/caddyserver/exampleshttps://github.com/Unknwon/wuwen.org/issues/11
http://www.jianshu.com/p/15fc32760993
http://tonybai.com/2015/06/04/caddy-a-web-server-in-go/
相关文章推荐
- axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务的安装问题
- 如何在Linux下部署web程序(搭建vsftp服务,搭建sshd 服务器,jdk安装步骤,Tomcat安装步骤,MySQL安装步骤)
- linux下安装tomcat服务及部署web应用
- 安装web服务后,浏览没有访问权限.安装aspnet2.0
- 部署安装时写入SQLSERVER和Web.config
- 使用 WSDL 部署 Web 服务,第 2 部分: 简单对象访问协议(SOAP)
- AXIS实现web服务配置部署简要流程
- tomcat安装版的web应用服务路径不对的解决
- Web SSO 的样例下载、安装部署和运行指南:
- ASP.NET创建Web服务之发布和部署
- 部署安装时写入SQLSERVER和Web.config
- 部署安装时写入SQL SERVER和Web.config
- 解决.NET(WebApplication)安装部署的不能选择安装路径的问题
- VS2005 Web项目安装部署:利用预编译的Dll 隐藏.cs文件 的简单实现
- VS2005 Web项目安装部署:利用预编译的Dll 隐藏.cs文件 的简单实现
- 部署安装时写入SQLSERVER和Web.config
- 使用Apache Axis部署 Web服务时的常见问题及其解决方法
- Web服务部署内幕[绝对原创]
- Web服务部署内幕
- 部署DLL和安装windows服务的两个命令