Caddy网页服务器简单部署实践

简介:

Caddy Server是一个用golang写的优秀web server,国内用户相对偏少,但我非常喜欢这个东西,所以来做个简易的手册。
它有许多nginx和apache没有的功能,不仅具有特色而且非常实用,比如简洁的conf,http/2,markdown渲染等等
要说它的缺点,就是效率不如前两者。

本文会以下几块方面来介绍此服务器

  • caddy安装及配置文件基本写法
  • 基本组成模块
  • 传统php+mysql建站
  • caddy特色markdown建站
  • 反向代理引入更多后端系统

1:Caddy的安装及配置文件基本写法

caddy的安装,就是从caddy的官网下载:https://caddyserver.com/download 想要什么模块就尽情点上吧2333
如果没有官网列表上设备或是有特殊需求的同学,可以参考无闻菊苣的文章自行构建可执行文件:https://wuwen.org/2015/11/13/caddy-in-action.html

PS:解压时请把压缩包放在一个新文件夹后再解压

然后执行 ./caddy 这时候访问localhost:2015就可以测试是否运行起来了,至于持久化运行,有多种方法实现,

candyserver下载下来的安装包里已经包含各系统启动文件

博主使用的是使用screen来守护,当然还有更专业的软件实现,比如supservisor

caddy的conf写法有好多种,首先你要在caddy的可执行文件的同目录创建一个名叫Caddyfile的文件,或者在启动时加入路径./caddy -conf="/path/to/Caddyfile"
接下来是几种caddy的conf的写法,简直辣眼睛

本地访问80:

:80

单网站:(它会帮您签好let's encrypt证书并且强制定向到https)

example.com
root /var/www/html
//更多模块

多网站:

example.com {
  gzip
  root /var/www/htm/
  //更多模块
}

2:常用基本组成模块

均写入到conf站点配置中

1.log日志

log /var/www/log/example.log

2.目录访问

browse

3.gzip压缩

gzip

4.自主ssl证书

tls /path/ssl/example.com.crt /path/ssl/example.com.key

5.git拉取功能(3600秒为间隔时间)

git https://github.com/user/project.git /var/www/html/git/ {
  interval 3600
}

6.访问口令认证(用户emiria,密码abc123)

basicauth / emiria abc123

7.cors跨域(下载时记得勾上)

cors / {  
    origin            https://alleysakura.com
    origin            http://alleysakura.pw https://alleysakura.pw
    methods           POST,PUT
    allow_credentials false
    max_age           3600
    allowed_headers   X-Custom-Header,X-Foobar
    exposed_headers   X-Something-Special,SomethingElse
}

8.IP屏蔽(下载时记得勾上)

ipfilter / {  
    rule       block
    ip         212.10.15.0-255 202.10.15.0-10 59.43.247.103
    blockpage  /var/www/html/403.html
}

9.跳转功能(目录重写功能也类似)

redir http://example.com{url}

而且不像nginx进行www重定向那么麻烦,把域名原域名(不限协议)写上,大括号里加上这个就可以,简直太赞了

10.自定义错误页面

errors {
    404 404.html
    500 /var/www/html/500.html
}

3:传统php+mysql建站

包管理器安装mysql+php,然后添加

fastcgi / 127.0.0.1:9000 php

4:caddy特色markdown建站

具体官方wiki上有示例,功能非常强大,这是一个博主弄的示例站 https://caddy.rd.md

5:反向代理引入更多后端系统

引入反向代理,只需一行

proxy / localhost:4000

负载均衡也是类似配置的23333

proxy / 10.10.201.222:80 10.10.201.221:80 {
        policy round_robin
    }

当然caddyserver还有许多不常用的,但是非常好玩的组件,大家可以去官网看看文档,博主也将继续探索~(> y <)

相关文章
|
5天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
|
12天前
|
NoSQL 关系型数据库 MySQL
多机部署:打造内网服务器集群
在多机部署教程中,了解如何配置分布式应用如Laravel以使用Redis同步用户状态。关键步骤包括:修改MySQL的`bind-address`至内网IP,重启服务;同样修改Redis的`bind`,重启服务;以及调整Elasticsearch的`network.host`和`discovery.seed_hosts`,并重启。通过这些步骤,确保服务间能内网通信,实现多服务器状态同步。
27 2
|
12天前
|
缓存 弹性计算 应用服务中间件
阿里云服务器部署Jupyter私房菜
在阿里云ECS上,选用2核2G的配置,安装Ubuntu 22.04,然后部署Nginx作为Jupyter Notebook的反向代理。安装Miniconda3,配置清华TUNA镜像源以加速下载。创建Jupyter Notebook,设置密码和远程访问,通过Nginx配置实现安全访问。整个过程包括安装Jupyter,修改Nginx配置,最后通过浏览器访问 Notebook。
阿里云服务器部署Jupyter私房菜
|
13天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
17天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
17天前
|
敏捷开发 弹性计算 负载均衡
阿里云云效产品使用问题之如何将应用部署到部署组的某一台特定服务器上
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
9天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
9天前
|
JavaScript Linux 网络安全
若依修改,若依启动之后,网页端无法访问接口,宝塔和云服务器的端口都要放开,就好了,软件开发常见流程,后台端口就可以访问了
若依修改,若依启动之后,网页端无法访问接口,宝塔和云服务器的端口都要放开,就好了,软件开发常见流程,后台端口就可以访问了