您的位置:首页 > 其它

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 caddy
chsh -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 -plugins
Server 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.service
systemctl enable caddy.service
systemctl start caddy.service
systemctl status caddy.service

参考文档

https://github.com/caddyserver/examples
https://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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息