广告
返回顶部
首页 > 资讯 > 操作系统 >Linux下如何配置Caddy
  • 244
分享到

Linux下如何配置Caddy

2023-06-27 08:06:55 244人浏览 安东尼
摘要

这篇文章主要为大家展示了“linux下如何配置Caddy”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何配置Caddy”这篇文章吧。Caddy是一款快速,易用的生产型开源WEB服务

这篇文章主要为大家展示了“linux下如何配置Caddy”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何配置Caddy”这篇文章吧。

Caddy是一款快速,易用的生产型开源WEB服务器,使您的工作效率更高。适用于windowsMac,Linux,BSD,Solaris和Android

安装

用过 golang 的应该都知道,Golang 程序基本上不会有各种依赖,都是光秃秃一个可执行程序,cp 到 /usr/local/bin就算安装完成了,所以说安装 caddy 是很简单的,我给出三种方法。

脚本安装” data-anchor-id=”vca7″>

脚本安装

curl -s https://getcaddy.com | bash

caddy 官方给出了一个安装脚本,执行上面的命令就可以一键安装 caddy,等执行结束后,使用 which caddy,可以看到 caddy 已经被安装到了 /usr/local/bin/caddy

手动安装

Https://caddyserver.com/download 点这个链接进入到 caddy 官网的下载界面,网页左侧可以选择平台和插件,如果在 Linux 服务器上使用的话,platfORM 选择 Linux 64-bit 就可以了,plugins 如果暂时不需要的话,可以不选。然后点击下面的 DOWNLOAD 按钮,就下载到 caddy 了。同理,解压之后用 cp 命令放到 /usr/local/bin/caddy 就完成了安装。

Linux下如何配置Caddy

源码安装

go get GitHub.com/mholt/caddy/caddy

对于安装了 golang 编译器的同学,只需要执行 go get 就能到 $GOPATH/bin 里,是否 cp 到 /usr/local/bin 里就看心情了。使用源码安装可以安装到最新版本的 caddy,功能上一般是最新的,而且因为是本地编译,性能可能会稍微高一些,但是可能会存在不稳定的现象。

配置

临时文件服务器

Caddy 的配置文件叫做 Caddyfile,Caddy 不强制你把配置文件放到哪个特定文件夹,默认情况下,把 Caddyfile 放到当前目录就可以跑起来了,如下:

echo 'localhost:8888' >> Caddyfileecho 'gzip' >> Caddyfileecho 'browse' >> Caddyfilecaddy

在随便一个目录里执行上面代码,然后在浏览器里打开 http://localhost:8888 发现 caddy 已经启动了一个文件服务器。当临时需要一个 fileserver 的时候(比如共享文件),使用 caddy 会很方便。

生产环境使用

当然了,在生产环境使用的时候就不能这么草率的把配置文件放到当前目录了,一般情况下会放到 /etc/caddy 里。

sudo mkdir /etc/caddysudo touch /etc/caddy/Caddyfilesudo chown -R root:www-data /etc/caddy

除了配置文件,caddy 会自动生成 ssl 证书,需要一个文件夹放置 ssl 证书。

sudo mkdir /etc/ssl/caddysudo chown -R www-data:root /etc/ssl/caddysudo chmod 0770 /etc/ssl/caddy

因为 ssl 文件夹里会放置私钥,所以权限设置成 770 禁止其他用户访问。

最后,创建一下放置网站文件的目录,如果已经有了,就不需要创建了。

sudo mkdir /var/wwwsudo chown www-data:www-data /var/www

创建好这些文件和目录了之后,我们需要把 caddy 配置成一个服务,这样就可以开机自动运行,并且管理起来也方便。因为目前大多数发行版都使用 systemd 了,所以这里只讲一下如何配置 systemd,不过 caddy 也支持配置成原始的 sysvinit 服务,具体方法看这里。

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service # 从 github 下载 systemd 配置文件sudo systemctl daemon-reload # 重新加载 systemd 配置sudo systemctl enable caddy.service # 设置 caddy 服务自启动sudo systemctl status caddy.service # 查看 caddy 状态

Caddyfile

基本的安装配置搞定之后,最重要的就是如何写 Caddyfile了。可以直接 vim /etc/caddy/Caddyfile 来修改 Caddyfile,也可以再自己电脑上改好然后 rsync 到服务器上。如果修改了 Caddyfile 发现没有生效,是需要执行一下 sudo systemctl restart cadd.service 来重启 caddy 的。

Caddyfile 的格式

Caddfile的格式还是比较简单的,首先第一行必须是网站的地址,例如:

localhost:8080或lengzzz.com

地址可以带一个端口号,那么 caddy 只会在这个端口上开启 http 服务,而不会开启 https,如果不写端口号的话,caddy 会默认绑定 80 和 443 端口,同时启动 http 和 https 服务。

地址后面可以再跟一大堆指令(directive)。Caddyfile 的基本格式就是这样,由一个网站地址和指令组成,是不是很简单。

指令

指令的作用是为网站开启某些功能。指令的格式有三种,先说一下最简单的不带参数的指令比如:

railgun.moe # 没错,moe后缀的域名也可以哦 gzip

第二行的 gzip 就是一个指令,它表示打开 gzip 压缩功能,这样网站在传输网页是可以降低流量。

第二种指令的格式是带简单参数的指令:

railgun.moe gzip log /var/log/caddy/access.log tls lengz@lengzzz.com root /var/www/

第三行,log 指令会为网站开启 log 功能,log 指令后的参数告诉 caddy log 文件存放的位置。第四行的 tls 指令告诉 caddy 为网站开启 https 并自动申请证书,后面的 email 参数是告知 CA 申请人的邮箱。(caddy 会默认使用 let’s encrypt 申请证书并续约,很方便吧)

另外,简单参数也可能不只一个,比如 redir 指令:

railgun.moegziplog /var/log/caddy/access.logtls /etc/ssl/cert.pem /etc/ssl/key.pemroot /var/www/redir / https://lengzzz.com/arcHive/{uri} 301

上面的 redir 指令带了三个参数,意思是把所有的请求使用 301 重定向到 https://lengzzz.com/archive/xxx,这个指令在给网站换域名的时候很有用。另外 tls 指令变了,不单单传 email一个参数, 而是分别传了证书和私钥的路径,这样的话 caddy 就不会去自动申请证书,而是使用路径给出的证书了。

在这个例子里还使用了 {uri} 这样的占位符(placeholder),详细的列表可以在这里查询到:https://caddyserver.com/docs/placeholders。

最后一种指令是带复杂参数的,这种指令包含可能很多参数,所以需要用一对花括号包起来,比如 header 指令:

railgun.moegziplog /var/log/caddy/access.logtls lengz@lengzzz.comroot /var/www/header /api { Access-Control-Allow-Origin *Access-Control-Allow-Methods "GET, POST, OPTioNS"-Server}fastcgi / 127.0.0.1:9000 PHP {index index.php}rewrite {to {path} {path}/ /index.php?{query}}

6-10 行的 header 指令代表为所有的 /api/xxx 的请求加上 Access-Control-Allow-Origin 和 Access-Control-Allow-Methods 这两个 header,从而能支持 javascript 跨域访问 ,第 9 行代表删除 Server header,防止别人看到服务器类型。

11-13 行使用了 fastcgi 指令,代表把请求通过 fastcgi 传给 php,ruby 等后端程序。

14-15 行,使用了 rewrite 指令,这个指令的作用是 服务器内部重定向 在下面的参数 to 后面,又跟了三个参数,这个功能上有点类似 Nginxtry_files 。告诉 caddy 需要先查看网址根目录 /var/www 里有没有 {path} 对应的文件,如果没有再查看有没有 {path} 对应的目录,如果都没有,则转发给 index.php 入口文件。这个功能一般会用在 PHP 的 mvc 框架上使用。

随着一步步完善这个 Caddyfile,目前这个版本的 Caddyfaile 已经可以直接在网站中使用了。

多 HOST 网站

刚才说的一直都是单个域名的网址,那么如果在同一个服务器上部署多个域名的网站呢?很简单,只需要在域名后面跟一个花括号扩起来就可以了,如下:

railgun.moe {gziplog /var/log/caddy/railgun_moe.logtls lengz@lengzzz.comroot /var/www/header /api {Access-Control-Allow-Origin *Access-Control-Allow-Methods "GET, POST, OPTIONS"-Server}fastcgi / 127.0.0.1:9000 php {index index.php}rewrite {to {path} {path}/ /index.php?{query}}}lengzzz.com { tls lengz@lengzzz.comlog /var/log/caddy/lengzzz_com.logredir / https://railgun.moe/{uri} 301}

以上是“Linux下如何配置Caddy”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: Linux下如何配置Caddy

本文链接: https://www.lsjlt.com/news/309129.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux下如何配置Caddy
    这篇文章主要为大家展示了“Linux下如何配置Caddy”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何配置Caddy”这篇文章吧。Caddy是一款快速,易用的生产型开源Web服务...
    99+
    2023-06-27
  • Linux系统下如何安装Caddy
    这篇“Linux系统下如何安装Caddy”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统下如何安装Caddy”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来...
    99+
    2023-06-28
  • Linux下如何配置PPTP
    这篇文章主要介绍了Linux下如何配置PPTP,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PPTP(Point to Point Tunneling Protocol),即...
    99+
    2023-06-27
  • Linux下如何配置VPS
    这篇文章主要介绍了Linux下如何配置VPS,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VPS又叫虚似专用服务器。它就相当于是一种技术,可以将一部服务器分割成多个虚似专享服...
    99+
    2023-06-27
  • Linux下如何配置MOC
    这篇文章给大家分享的是有关Linux下如何配置MOC的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Music On Console (MOC)是一款在Linux/Unix文字接口下的音乐播放程式。 MOC功能强大...
    99+
    2023-06-28
  • Linux下IPv6配置
    准备工作:1、正确的IPV6地址。2、正确的网关地址。3、正确的路由地址。4、域名管理权限 执行ifconfig 看查询结果中是否存在int6服务,如果没有需要先安装ipv6模块。 编辑sysctl.conf,位置在/etc/sysctl....
    99+
    2023-10-23
    网络 服务器 linux
  • LINUX下配置MYSQL
    初次学习在Linux下配置Mysql,首先查找版本,环境;部署后,启动Mysql,检验数据库是否运行正常[@more@]--查看LINUX版本[root@sd ~]# cat /etc/issueRed H...
    99+
    2022-10-18
  • Linux系统下如何配置SSH
    本篇内容介绍了“Linux系统下如何配置SSH”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SSH是一个用来替代TELNET、FTP以及R命...
    99+
    2023-06-10
  • Linux下如何配置DNS服务
    这篇文章主要介绍Linux下如何配置DNS服务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、DNS服务简介DNS:域名系统。主要用来记录(登记)域名和IP地址的映射关系(对应关系)。DNS功能:域名解析。正向解析...
    99+
    2023-06-28
  • Linux下如何安装配置composer
    这篇文章主要介绍了Linux下如何安装配置composer,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声...
    99+
    2023-06-28
  • Linux下如何安装配置Typora
    这篇文章主要介绍Linux下如何安装配置Typora,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别,...
    99+
    2023-06-28
  • Linux下如何安装配置Percona
    本篇内容主要讲解“Linux下如何安装配置Percona”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下如何安装配置Percona”吧!Percona Server是一款独立的数据库产...
    99+
    2023-06-27
  • Linux下如何安装配置Twemproxy
    这篇文章给大家分享的是有关Linux下如何安装配置Twemproxy的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Twemproxy是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自...
    99+
    2023-06-28
  • Linux下Hbase如何安装配置
    这篇文章主要介绍Linux下Hbase如何安装配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux下Hbase安装配置首先要安装HadoopLinux Hadoop 2.7.3 安装搭建1. Hbase安装包...
    99+
    2023-06-21
  • Linux下如何配置无线网络
    这篇文章将为大家详细讲解有关Linux下如何配置无线网络,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 安装 wireless_tools 和 madwifi pacman -S&...
    99+
    2023-06-28
  • linux下如何安装和配置jdk1.7
    本文小编为大家详细介绍“linux下如何安装和配置jdk1.7”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux下如何安装和配置jdk1.7”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。0)到官网去下在j...
    99+
    2023-06-26
  • Linux下如何配置MongoDB副本集
    这篇文章给大家分享的是有关Linux下如何配置MongoDB副本集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据...
    99+
    2023-06-27
  • Linux下如何配置DHCP服务器
    这篇文章将为大家详细讲解有关Linux下如何配置DHCP服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。DHCP服务器即动态主机配置协议,它是一种服务器-多客户端技术,它允许DHCP服务器将IP地址分...
    99+
    2023-06-28
  • Linux下如何安装和配置Nginx
    这篇文章主要为大家展示了“Linux下如何安装和配置Nginx”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装和配置Nginx”这篇文章吧。Nginx(“engine x”)是...
    99+
    2023-06-28
  • Linux下如何配置静态路由
    这篇文章主要为大家展示了“Linux下如何配置静态路由”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何配置静态路由”这篇文章吧。静态路由是一种路由的方式,路由项由手动配置,而非动态...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作