142 lines
3.3 KiB
Markdown
142 lines
3.3 KiB
Markdown
# URL 前缀配置
|
||
|
||
Message Nest 支持配置 URL 前缀,允许您将应用部署在子路径下(例如 `/message-nest`),而不是根路径。
|
||
|
||
## 工作原理
|
||
|
||
配置 URL 前缀后:
|
||
1. 后端会在所有路由前添加指定的前缀
|
||
2. 前端页面加载时,后端会在 HTML 中自动注入前缀配置
|
||
3. 前端的所有 API 请求会自动使用该前缀
|
||
|
||
**无需手动配置前端**,前后端会自动同步!
|
||
|
||
## 使用场景
|
||
|
||
- 在同一域名下部署多个应用
|
||
- 通过反向代理(如 Nginx)将应用映射到子路径
|
||
- 在企业内网中统一管理多个服务
|
||
|
||
## 配置方式
|
||
|
||
### 方式一:配置文件
|
||
|
||
编辑 `conf/app.ini` 文件,在 `[server]` 部分添加:
|
||
|
||
```ini
|
||
[server]
|
||
RunMode = release
|
||
HttpPort = 8000
|
||
UrlPrefix = /message-nest
|
||
```
|
||
|
||
### 方式二:环境变量
|
||
|
||
设置环境变量:
|
||
|
||
```bash
|
||
export URL_PREFIX=/message-nest
|
||
```
|
||
|
||
或在 Docker 中:
|
||
|
||
```bash
|
||
docker run -e URL_PREFIX=/message-nest ...
|
||
```
|
||
|
||
## 配置说明
|
||
|
||
- **路径格式**:可以带或不带前导斜杠 `/`,系统会自动处理
|
||
- **示例值**:
|
||
- `/message-nest`
|
||
- `/api/message-nest`
|
||
- `message-nest`(会自动转换为 `/message-nest`)
|
||
- **默认值**:空字符串(部署在根路径)
|
||
|
||
## 访问方式
|
||
|
||
配置 URL 前缀后,访问地址会变为:
|
||
|
||
- **原地址**:`http://your-domain.com/`
|
||
- **新地址**:`http://your-domain.com/message-nest/`
|
||
|
||
所有 API 端点也会自动添加前缀:
|
||
|
||
- **原 API**:`http://your-domain.com/api/v1/sendways/list`
|
||
- **新 API**:`http://your-domain.com/message-nest/api/v1/sendways/list`
|
||
|
||
## Nginx 反向代理配置示例
|
||
|
||
如果使用 Nginx 反向代理,配置示例:
|
||
|
||
```nginx
|
||
location /message-nest/ {
|
||
proxy_pass http://localhost:8000/message-nest/;
|
||
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;
|
||
}
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
::: warning 注意
|
||
1. **修改配置后需要重启服务**才能生效
|
||
2. **前后端会自动同步**前缀配置,后端会在 HTML 中注入配置
|
||
3. **已有的 API 调用**会自动适配新的前缀
|
||
4. **静态资源**(CSS、JS、图片等)也会自动使用新的前缀
|
||
5. **开发模式**下,如果前端单独运行,需要确保后端 API 的前缀配置正确
|
||
:::
|
||
|
||
## 常见问题
|
||
|
||
### Q: 修改前缀后无法访问?
|
||
|
||
**A:** 请检查:
|
||
1. 是否已重启服务
|
||
2. 前缀格式是否正确
|
||
3. 如果使用反向代理,检查代理配置是否正确
|
||
|
||
### Q: 可以使用多级路径吗?
|
||
|
||
**A:** 可以,例如:`/api/message-nest` 或 `/services/messaging/nest`
|
||
|
||
### Q: URL 前缀会影响性能吗?
|
||
|
||
**A:** 不会,URL 前缀只是路径的一部分,不会影响应用性能。
|
||
|
||
## 示例
|
||
|
||
### 示例 1:部署在子路径
|
||
|
||
```ini
|
||
# conf/app.ini
|
||
[server]
|
||
UrlPrefix = /message-nest
|
||
```
|
||
|
||
访问地址:`http://your-domain.com/message-nest/`
|
||
|
||
### 示例 2:多级子路径
|
||
|
||
```ini
|
||
# conf/app.ini
|
||
[server]
|
||
UrlPrefix = /api/services/message-nest
|
||
```
|
||
|
||
访问地址:`http://your-domain.com/api/services/message-nest/`
|
||
|
||
### 示例 3:Docker 环境变量
|
||
|
||
```bash
|
||
docker run -d \
|
||
-p 8000:8000 \
|
||
-e URL_PREFIX=/message-nest \
|
||
-e DB_TYPE=sqlite \
|
||
message-nest:latest
|
||
```
|
||
|
||
访问地址:`http://localhost:8000/message-nest/`
|