Files
LandPPT/docs/base_url_configuration.md
2025-11-07 09:05:07 +08:00

132 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 反向代理域名配置指南
当您为LandPPT主服务设置了反向代理域名时需要配置`base_url`参数以确保图床服务的链接能够正确显示。
## 问题描述
在使用反向代理如Nginx、Apache等如果没有正确配置`base_url`,会出现以下问题:
- 图片链接仍然显示为`localhost:8000`
- 前端无法正确加载图片
- 图片预览、下载等功能异常
## 解决方案
### 1. 通过Web界面配置
1. 访问系统配置页面:`https://your-domain.com/ai-config`
2. 切换到"应用配置"标签页
3. 在"基础URL (BASE_URL)"字段中输入您的代理域名
4. 例如:`https://your-domain.com``http://your-domain.com:8080`
5. 点击"保存应用配置"
### 2. 通过环境变量配置
`.env`文件中添加或修改:
```bash
# 基础URL配置 - 用于生成图片等资源的绝对URL
BASE_URL=https://your-domain.com
```
### 3. 通过命令行参数配置
启动服务时指定:
```bash
BASE_URL=https://your-domain.com python -m uvicorn src.landppt.main:app --host 0.0.0.0 --port 8000
```
## 配置示例
### Nginx反向代理配置示例
```nginx
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
对应的LandPPT配置
```bash
BASE_URL=http://your-domain.com
```
### HTTPS反向代理配置示例
```nginx
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/key.pem;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
```
对应的LandPPT配置
```bash
BASE_URL=https://your-domain.com
```
## 验证配置
配置完成后,您可以通过以下方式验证:
1. **检查图片URL**在PPT编辑器中生成或上传图片查看图片URL是否使用了正确的域名
2. **测试图片访问**直接访问图片URL确认能够正常显示
3. **检查API响应**调用图片相关API查看返回的URL是否正确
## 技术实现
系统通过以下方式实现统一的URL管理
1. **URL服务**`src/landppt/services/url_service.py` - 统一管理所有URL生成逻辑
2. **配置集成**:自动从配置服务获取`base_url`设置
3. **实时更新**:配置更改后立即生效,无需重启服务
4. **向后兼容**:如果未配置`base_url`,自动使用`http://localhost:8000`作为默认值
## 注意事项
1. **URL格式**`base_url`不能以斜杠(`/`)结尾
2. **协议匹配**:确保`base_url`的协议http/https与实际访问协议一致
3. **端口配置**:如果使用非标准端口,需要在`base_url`中包含端口号
4. **配置优先级**:环境变量 > Web界面配置 > 默认值
## 故障排除
### 图片仍然显示localhost
1. 检查`base_url`配置是否正确
2. 确认配置已保存并生效
3. 清除浏览器缓存
4. 检查反向代理配置
### 图片无法加载
1. 确认反向代理正确转发了`/api/image/`路径
2. 检查防火墙和安全组设置
3. 验证SSL证书配置如果使用HTTPS
### 配置不生效
1. 重启LandPPT服务
2. 检查环境变量是否正确设置
3. 查看服务日志中的配置加载信息