feat: 添加 Caddy 配置文件和部署文档
- 创建 Caddyfile 配置 photography.iriver.top 域名 - 配置静态文件服务指向 ~/www/photography/ - 添加性能优化:gzip 压缩、缓存控制 - 配置安全头和错误处理 - 添加详细的 Caddy 部署和配置文档 功能特性: - ✅ 自动 HTTPS (Let's Encrypt) - ✅ 静态资源缓存优化 - ✅ Gzip 压缩 - ✅ 安全头配置 - ✅ 404 错误页面处理 - ✅ 访问日志记录 使用方法: 1. 复制 Caddyfile 到服务器 /etc/caddy/ 2. 运行 sudo systemctl reload caddy 3. 访问 https://photography.iriver.top
This commit is contained in:
@ -65,7 +65,7 @@ jobs:
|
|||||||
|
|
||||||
echo "✅ 部署完成!"
|
echo "✅ 部署完成!"
|
||||||
echo "📁 部署路径:~/www/photography/"
|
echo "📁 部署路径:~/www/photography/"
|
||||||
echo "🌐 访问地址:http://photography.iriver.top"
|
echo "🌐 访问地址:https://photography.iriver.top"
|
||||||
|
|
||||||
- name: Notify success
|
- name: Notify success
|
||||||
if: success()
|
if: success()
|
||||||
|
|||||||
60
Caddyfile
Normal file
60
Caddyfile
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# Photography Portfolio Caddyfile
|
||||||
|
# 将 https://photography.iriver.top 映射到用户目录
|
||||||
|
|
||||||
|
photography.iriver.top {
|
||||||
|
# 静态文件服务
|
||||||
|
root * ~/www/photography
|
||||||
|
|
||||||
|
# 启用文件服务器
|
||||||
|
file_server
|
||||||
|
|
||||||
|
# 启用 gzip 压缩
|
||||||
|
encode gzip
|
||||||
|
|
||||||
|
# 设置默认首页
|
||||||
|
try_files {path} {path}/ /index.html
|
||||||
|
|
||||||
|
# 设置静态资源缓存
|
||||||
|
@static {
|
||||||
|
path *.css *.js *.png *.jpg *.jpeg *.gif *.svg *.woff *.woff2 *.ttf *.eot *.ico
|
||||||
|
}
|
||||||
|
header @static Cache-Control "public, max-age=31536000, immutable"
|
||||||
|
|
||||||
|
# 设置 HTML 文件缓存
|
||||||
|
@html {
|
||||||
|
path *.html
|
||||||
|
}
|
||||||
|
header @html Cache-Control "public, max-age=3600"
|
||||||
|
|
||||||
|
# 安全头设置
|
||||||
|
header {
|
||||||
|
# 防止点击劫持
|
||||||
|
X-Frame-Options "SAMEORIGIN"
|
||||||
|
# 防止 MIME 类型嗅探
|
||||||
|
X-Content-Type-Options "nosniff"
|
||||||
|
# XSS 保护
|
||||||
|
X-XSS-Protection "1; mode=block"
|
||||||
|
# 推荐 HTTPS
|
||||||
|
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
||||||
|
# 隐藏服务器信息
|
||||||
|
-Server
|
||||||
|
}
|
||||||
|
|
||||||
|
# 日志配置
|
||||||
|
log {
|
||||||
|
output file /var/log/caddy/photography.log {
|
||||||
|
roll_size 10MB
|
||||||
|
roll_keep 5
|
||||||
|
}
|
||||||
|
format json
|
||||||
|
}
|
||||||
|
|
||||||
|
# 错误页面处理
|
||||||
|
handle_errors {
|
||||||
|
@404 {
|
||||||
|
expression {http.error.status_code} == 404
|
||||||
|
}
|
||||||
|
rewrite @404 /404.html
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
}
|
||||||
103
docs/deployment/caddy-setup.md
Normal file
103
docs/deployment/caddy-setup.md
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
# Caddy 配置指南
|
||||||
|
|
||||||
|
## 配置文件位置
|
||||||
|
|
||||||
|
将 `Caddyfile` 复制到服务器的 Caddy 配置目录:
|
||||||
|
|
||||||
|
### 常见位置:
|
||||||
|
- Ubuntu/Debian: `/etc/caddy/Caddyfile`
|
||||||
|
- CentOS/RHEL: `/etc/caddy/Caddyfile`
|
||||||
|
- 用户目录: `~/Caddyfile`
|
||||||
|
|
||||||
|
## 部署步骤
|
||||||
|
|
||||||
|
### 1. 上传配置文件
|
||||||
|
```bash
|
||||||
|
# 将 Caddyfile 上传到服务器
|
||||||
|
scp Caddyfile user@server:/etc/caddy/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 创建日志目录
|
||||||
|
```bash
|
||||||
|
sudo mkdir -p /var/log/caddy
|
||||||
|
sudo chown caddy:caddy /var/log/caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 验证配置
|
||||||
|
```bash
|
||||||
|
sudo caddy validate --config /etc/caddy/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 重新加载配置
|
||||||
|
```bash
|
||||||
|
sudo systemctl reload caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. 检查状态
|
||||||
|
```bash
|
||||||
|
sudo systemctl status caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置说明
|
||||||
|
|
||||||
|
### 基本功能
|
||||||
|
- **域名**: `photography.iriver.top`
|
||||||
|
- **根目录**: `~/www/photography`
|
||||||
|
- **自动 HTTPS**: Caddy 自动获取和续期 SSL 证书
|
||||||
|
- **文件服务**: 直接提供静态文件服务
|
||||||
|
|
||||||
|
### 优化功能
|
||||||
|
- **Gzip 压缩**: 减少传输大小
|
||||||
|
- **缓存控制**: 静态资源长期缓存,HTML 短期缓存
|
||||||
|
- **安全头**: 防止常见安全问题
|
||||||
|
- **错误处理**: 404 错误重定向到 404.html
|
||||||
|
|
||||||
|
### 日志功能
|
||||||
|
- **位置**: `/var/log/caddy/photography.log`
|
||||||
|
- **格式**: JSON 格式便于分析
|
||||||
|
- **轮转**: 10MB 轮转,保留 5 个文件
|
||||||
|
|
||||||
|
## 故障排除
|
||||||
|
|
||||||
|
### 检查配置语法
|
||||||
|
```bash
|
||||||
|
caddy validate --config /path/to/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看日志
|
||||||
|
```bash
|
||||||
|
# 系统日志
|
||||||
|
sudo journalctl -u caddy -f
|
||||||
|
|
||||||
|
# 应用日志
|
||||||
|
sudo tail -f /var/log/caddy/photography.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### 测试配置
|
||||||
|
```bash
|
||||||
|
# 测试模式启动
|
||||||
|
sudo caddy run --config /etc/caddy/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
## 域名解析
|
||||||
|
|
||||||
|
确保域名 `photography.iriver.top` 的 DNS 记录指向服务器 IP:
|
||||||
|
|
||||||
|
```
|
||||||
|
A photography.iriver.top YOUR_SERVER_IP
|
||||||
|
```
|
||||||
|
|
||||||
|
## SSL 证书
|
||||||
|
|
||||||
|
Caddy 会自动:
|
||||||
|
- 获取 Let's Encrypt SSL 证书
|
||||||
|
- 自动续期证书
|
||||||
|
- 强制 HTTPS 重定向
|
||||||
|
|
||||||
|
## 性能优化
|
||||||
|
|
||||||
|
配置包含以下优化:
|
||||||
|
- Gzip 压缩减少带宽
|
||||||
|
- 静态资源缓存提高加载速度
|
||||||
|
- 安全头提高安全性
|
||||||
|
- 错误页面友好处理
|
||||||
Reference in New Issue
Block a user