e3fa7e86f3
新的文档结构:
docs/
├── README.md # 文档中心导航
├── modules/ # 模块文档
│ ├── auth/ # 认证模块
│ │ ├── README.md
│ │ ├── feishu-login.md
│ │ ├── feishu-qrcode.md
│ │ └── feishu-notification.md
│ ├── approval/ # 审批流程模块
│ │ └── README.md
│ ├── business-trip/ # 出差申请模块
│ │ └── README.md
│ └── user/ # 用户管理模块
│ └── README.md
└── guides/ # 指南文档
├── deployment.md
├── environment.md
├── git-workflow.md
└── ...
每个模块都有独立的 README.md 说明概述、API、关键文件等
143 lines
3.0 KiB
Markdown
143 lines
3.0 KiB
Markdown
# 反向代理配置指南
|
||
|
||
本指南用于配置 OpenResty 和 frpc 以将 API 暴露到公网,便于调试飞书登录。
|
||
|
||
## 环境要求
|
||
|
||
- 已安装 OpenResty 或 Nginx
|
||
- 已安装 frpc
|
||
- 拥有可用的 frp 服务器
|
||
- 拥有可配置的域名
|
||
|
||
## 安装步骤
|
||
|
||
### 1. 安装 OpenResty (Ubuntu/Debian)
|
||
|
||
```bash
|
||
# 导入 GPG 密钥
|
||
wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
|
||
|
||
# 添加 OpenResty 仓库
|
||
sudo apt-get -y install -y wget gnupg ca-certificates
|
||
wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
|
||
echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/openresty.list
|
||
|
||
# 安装 OpenResty
|
||
sudo apt-get update
|
||
sudo apt-get install -y openresty
|
||
|
||
# 启动服务
|
||
sudo systemctl start openresty
|
||
sudo systemctl enable openresty
|
||
```
|
||
|
||
### 2. 配置 OpenResty
|
||
|
||
将 `nginx/x-server-api.conf` 复制到 OpenResty 配置目录:
|
||
|
||
```bash
|
||
sudo cp nginx/x-server-api.conf /usr/local/openresty/nginx/conf/conf.d/
|
||
sudo mkdir -p /usr/local/openresty/nginx/logs
|
||
sudo openresty -s reload
|
||
```
|
||
|
||
### 3. 安装 frpc
|
||
|
||
```bash
|
||
# 下载 frpc(根据你的系统选择版本)
|
||
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
|
||
|
||
# 解压
|
||
tar xzf frp_0.52.3_linux_amd64.tar.gz
|
||
cd frp_0.52.3_linux_amd64
|
||
|
||
# 复制到系统路径
|
||
sudo cp frpc /usr/local/bin/
|
||
sudo chmod +x /usr/local/bin/frpc
|
||
```
|
||
|
||
### 4. 配置 frpc
|
||
|
||
编辑 `frpc/frpc.ini`,填入你的 frp 服务器信息:
|
||
|
||
```ini
|
||
[common]
|
||
server_addr = your-frp-server.com # 你的 frp 服务器地址
|
||
server_port = 7000 # frp 服务器端口
|
||
token = your-frp-token # 认证令牌
|
||
|
||
[x-server-api]
|
||
type = http
|
||
local_ip = 127.0.0.1
|
||
local_port = 8787
|
||
custom_domains = api.x-server.your-domain.com # 你的公网域名
|
||
```
|
||
|
||
### 5. 启动 frpc
|
||
|
||
```bash
|
||
# 前台运行(测试)
|
||
frpc -c frpc/frpc.ini
|
||
|
||
# 后台运行(生产)
|
||
nohup frpc -c frpc/frpc.ini > /dev/null 2>&1 &
|
||
```
|
||
|
||
### 6. 配置 DNS
|
||
|
||
将你的域名 `api.x-server.your-domain.com` 的 A 记录指向你的 frp 服务器 IP。
|
||
|
||
### 7. 配置飞书应用
|
||
|
||
在飞书开放平台配置回调 URL:
|
||
|
||
```
|
||
https://api.x-server.your-domain.com/api/v1/auth/feishu-login
|
||
```
|
||
|
||
## 验证配置
|
||
|
||
### 测试本地 API
|
||
|
||
```bash
|
||
curl http://localhost:8787/api/v1/user/info
|
||
```
|
||
|
||
### 测试反向代理
|
||
|
||
```bash
|
||
curl http://api.x-server.local/api/v1/user/info
|
||
```
|
||
|
||
### 测试公网访问
|
||
|
||
```bash
|
||
curl https://api.x-server.your-domain.com/api/v1/user/info
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### frpc 连接失败
|
||
|
||
1. 检查 frp 服务器是否在线
|
||
2. 检查 token 是否正确
|
||
3. 检查端口是否被防火墙阻止
|
||
|
||
### 域名无法访问
|
||
|
||
1. 检查 DNS 解析是否生效
|
||
2. 检查 frp 服务器是否配置了该域名
|
||
3. 检查 frpc 日志
|
||
|
||
### CORS 错误
|
||
|
||
如果前端调用 API 时出现 CORS 错误,检查 nginx 配置中的 CORS 头部设置。
|
||
|
||
## 安全建议
|
||
|
||
1. **生产环境务必使用 HTTPS**
|
||
2. 配置 IP 白名单限制访问
|
||
3. 使用强密码和 token
|
||
4. 定期更新 frp 和 OpenResty 版本
|
||
5. 配置防火墙规则
|