SFTPGo 是什么?

SFTPGo 是一种基于事件驱动的文件传输解决方案。它支持多种协议(SFTP、SCP、FTP/S、WebDAV、HTTP/S)和多种存储后端。

通过 SFTPGo,您可以利用本地和云存储后端,使用您已经熟悉的工具和流程,与业务伙伴内部或外部交换和存储文件。

WebAdmin UI 允许您轻松创建和管理用户、文件夹、组及其他资源。

WebClient UI 允许终端用户在浏览器中更改他们的凭据、浏览和管理他们的文件,并设置双因素身份验证,该功能与 Microsoft Authenticator、Google Authenticator、Authy 以及其他兼容的应用程序配合使用。

阅读全文 »

Caddy 因其模块化架构而易于扩展。大多数类型的 Caddy 扩展(或插件)被称为模块,如果它们扩展或插入到 Caddy 的配置结构中。需要明确的是,Caddy 模块与 Go 模块是不同的(尽管它们也是 Go 模块)。

快速入门

Caddy 模块是任何在导入其包时注册为 Caddy 模块的命名类型。关键在于,模块总是实现了 caddy.Module
 接口,该接口提供了它的名称和构造函数。

在新的 Go 模块中,将以下模板粘贴到 Go 文件中,并自定义你的包名、类型名和 Caddy 模块 ID:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package mymodule
import "github.com/caddyserver/caddy/v2"
func init() {
    caddy.RegisterModule(Gizmo{})
}
// Gizmo 是一个示例;在这里放置你自己的类型。
type Gizmo struct {
}
// CaddyModule 返回 Caddy 模块信息。
func (Gizmo) CaddyModule() caddy.ModuleInfo {
    return caddy.ModuleInfo{
        ID:  "foo.gizmo",
        New: func() caddy.Module { return new(Gizmo) },
    }
}
```

然后从你的项目目录运行以下命令,你应该会在列表中看到你的模块:
阅读全文 »

无论你是在云端运行数千个 Caddy 实例,还是在嵌入式设备上运行单个 Caddy 服务器,很可能在某个时刻,你会想要对 Caddy 的运行情况有一个高层次的概览,以及了解它需要多长时间来完成任务。换句话说,你会想要能够监控
Caddy。

启用指标

你需要启用指标。

如果使用 Caddyfile,可以在全局选项中启用指标:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
    servers {
        metrics
    }
}

```

如果使用 JSON,则在你的 apps > http > servers
 配置中添加 "metrics": {}

## Prometheus

Prometheus 是一个监控平台,它通过抓取监控目标上的指标 HTTP 端点来收集指标。除了帮助你使用 Grafana 这样的仪表板工具显示指标外,Prometheus 还用于告警。

和 Caddy 一样,Prometheus 也是用 Go 编写的,并且以单个二进制文件的形式分发。安装方法可以参考 Prometheus 安装文档,或者在 MacOS 上直接运行 brew install prometheus


如果你是 Prometheus 的新手,请阅读 Prometheus 文档,否则请继续阅读!

要配置 Prometheus 从 Caddy 抓取指标,你需要一个类似以下内容的 YAML 配置文件:
阅读全文 »

Caddy 具有强大且灵活的日志功能,但这些功能可能与你之前使用的功能有所不同,尤其是如果你是从传统的共享主机或其他遗留 Web 服务器迁移过来的。

概述

日志有两个主要方面:产生
消费

产生
指的是生成消息,它包含三个步骤:

  1. 收集相关信息(上下文)。

  2. 构建有用的消息表示(编码)。

  3. 将该表示发送到输出(写入)。

阅读全文 »

虽然可以直接通过命令行界面运行 Caddy,但使用服务管理器来保持其运行有许多好处,例如确保系统重启时自动启动以及捕获 stdout/stderr 日志。

  • Linux 服务

  • 环境变量

  • run
     和 reload
     覆盖

  • 崩溃时重启

  • 单元文件

  • 手动安装

  • 使用服务

  • 本地 HTTPS

  • 覆盖

  • SELinux 考虑事项

  • Windows 服务

  • sc.exe

  • WinSW

  • Docker Compose

  • 设置

  • 使用

  • 本地 HTTPS

Linux 服务

在带有 systemd 的 Linux 发行版上运行 Caddy 的推荐方式是使用我们提供的官方 systemd 单元文件。

单元文件

阅读全文 »

文件系统层次标准(Filesystem Hierarchy Standard,简称FHS)是一个描述Unix类系统布局规范的参考标准。它因在Linux发行版中的广泛使用而流行起来,但也被其他类Unix系统所采用。FHS由Linux基金会维护,最新版本为3.0,于2015年6月3日发布。

目录结构

在FHS中,所有文件和目录都位于根目录/
下,即使它们存储在不同的物理或虚拟设备上。某些目录仅在安装了特定子系统(如X Window系统)时才会出现在特定系统中。

大多数这些目录在所有类Unix操作系统中都存在,并且通常以相似的方式使用。然而,以下描述是FHS中使用的具体描述,并不被视为除Linux以外其他平台的权威解释。

目录
描述
/
主层次结构的根目录,整个文件系统层次结构的根目录。
/bin
单用户模式下需要的基本命令二进制文件,包括用于启动系统或修复系统的工具(例如catlscp),供所有用户使用。
/boot
引导加载程序文件(例如内核、initrd)。
/dev
设备文件(例如/dev/null/dev/disk0/dev/sda1/dev/tty/dev/random)。
/etc
主机特定的系统范围配置文件。关于名称本身的含义曾有争议。在贝尔实验室早期版本的UNIX实现文档中,/etc被称为“其他目录”,因为该目录历史上存放了不属于其他地方的文件(然而,FHS将/etc限制为静态配置文件,不允许包含二进制文件)。自早期文档发布以来,目录名称已被重新解释为各种缩写,例如“可编辑文本配置”(Editable Text Configuration)或“扩展工具箱”(Extended Tool Chest)。
/etc/opt
存储在/opt中的附加软件包的配置文件。
/etc/sgml
处理SGML的软件的配置文件,例如目录。
/etc/X11
X Window系统版本11的配置文件。
/etc/xml
处理XML的软件的配置文件,例如目录。
/home
用户的主目录,包含保存的文件、个人设置等。
/lib/bin
/sbin中二进制文件所需的基本库。
/lib<qual>
替代格式的基本库。这些通常用于支持多种可执行代码格式的系统,例如支持32位和64位指令集的系统。此类目录是可选的,但如果存在,则有一些要求。
/media
可移动媒体的挂载点,例如CD-ROM(在2004年FHS-2.3中首次出现)。
/mnt
临时挂载的文件系统。
/opt
附加应用程序软件包。
/proc
提供进程和内核信息的虚拟文件系统。在Linux中,对应于procfs挂载。通常由系统动态生成和填充。
/root
root用户的主目录。
/run
运行时变量数据:自上次启动以来有关运行系统的信
阅读全文 »

Caddy 是一个单一的、自包含的、静态二进制文件,没有外部依赖,因为它是用 Go 语言编写的。这些特性是项目愿景的重要组成部分,因为它们简化了部署,并减少了生产环境中繁琐的故障排查。

如果没有动态链接,那么它如何扩展呢?Caddy 拥有一种新颖的插件架构,使其功能远远超出了其他任何 Web 服务器,即使是那些具有外部(动态链接)依赖的服务器。

我们“减少活动部件”的理念最终实现了更可靠、更易于管理、成本更低的网站——尤其是在大规模部署时。这份半技术性文档描述了我们如何通过软件工程实现这一目标。

概述

Caddy 包含一个命令、核心库和模块。

阅读全文 »

本教程将教你 HTTP Caddyfile 的基础知识,以便你可以快速轻松地生成外观美观、功能齐全的站点配置。

目标:

  • 🔲 第一个站点

  • 🔲 静态文件服务器

  • 🔲 模板

  • 🔲 压缩

  • 🔲 多个站点

  • 🔲 匹配器

  • 🔲 环境变量

  • 🔲 注释

先决条件:

  • 基本的终端/命令行技能

  • 基本的文本编辑器技能

  • caddy
     在你的 PATH 中

阅读全文 »

本教程将向您展示如何使用 Caddy 的管理 API,它可以让您以可编程的方式实现自动化。

目标:

  • 🔲 启动守护进程

  • 🔲 给 Caddy 提供配置

  • 🔲 测试配置

  • 🔲 替换活动配置

  • 🔲 遍历配置

  • 🔲 使用 @id
     标签

先决条件:

  • 基本的终端/命令行技能

  • 基本的 JSON 经验

  • caddy
     和 curl
     在您的 PATH 中

阅读全文 »

本指南将向您展示如何快速启用完全托管的 HTTPS。

前提条件:

  • 基本的终端 / 命令行技能

  • 对 DNS 的基本了解

  • 一个已注册的公共域名

  • 外部可访问端口 80 和 443

  • caddy
     和 curl
     在您的 PATH 中

在本教程中,请将 example.com
 替换为您的实际域名。

设置您的域名的 A/AAAA 记录,使其指向您的服务器。您可以通过登录到您的 DNS 提供商并管理您的域名来完成此操作。

阅读全文 »
0%