[Bug] API: type="proxy" website creation returns 500 Internal Server Error #12604
BruceSuen720
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
1Panel 版本
v2.1.10(最新稳定版,2026-04-23)
问题类型
Bug: type="proxy" 网站创建 API 返回 500 内部错误
问题描述
通过 REST API 创建 type="proxy" 类型的网站时,无论如何组合请求参数,都返回 500 Internal Server Error,响应体为空。
复现步骤
API 端点
POST http://10.0.0.6:18866/api/v2/websites
请求头
1Panel-Token: <md5("1panel" + API_KEY + timestamp)>
1Panel-Timestamp: <unix_timestamp>
Content-Type: application/json
Accept: application/json
请求体(尝试了多种组合)
尝试 1: type="proxy" + appType 空
{ "primaryDomain": "test.com", "type": "proxy", "alias": "test", "remark": "", "appType": "", "appInstallId": 0, "webSiteGroupId": 5, "otherDomains": "", "proxy": "http://127.0.0.1:8080", "proxyType": "", "ftpUser": "", "ftpPassword": "" }结果: 400 - AppType validation failed ('oneof' tag 要求 non-empty)
尝试 2: type="proxy" + appType="new"
结果: 500 - 响应体为空
尝试 3: type="proxy" + appType="installed" + appInstallId=0
结果: 500 - 响应体为空
尝试 4: type 换为 "deployment" + appType="new" + appDetailId=4053
结果: 500 - 响应体为空
根因分析
通过阅读 1Panel 源码(dev 分支),发现 backend/app/service/website.go 第 274 行附近的 CreateWebsite 函数中:
当 type="proxy" 时,代码落入 default 分支,调用 configDefaultNginx(create, &website, appInstall)。对于 Proxy 类型,website.Proxy 是空字符串(因为没有任何 case 设置它),导致 createProxyFile 生成的 nginx 配置中 proxy_pass 为空。nginx 配置检查失败后,1Panel 回滚整个事务,返回 500 错误。
前端代码证据
frontend/src/views/website/website/create/index.vue 中,对于 type="proxy" 类型,前端只设置了:
但后端的 CreateWebsite switch 语句中没有对应的 case,所以 create.Proxy 值无法被正确传递到处理逻辑中。
相关日志输出
无(500 错误响应体为空,无法获取更多调试信息)
期望的正常行为
能够通过 API 成功创建一个 type="proxy" 的网站,参数示例:
{ "primaryDomain": "example.com", "type": "proxy", "alias": "example", "remark": "反向代理测试", "appType": "", "appInstallId": 0, "webSiteGroupId": 5, "otherDomains": "", "proxy": "http://127.0.0.1:8080", "proxyType": "", "ftpUser": "", "ftpPassword": "" }可能的修复方案
在 backend/app/service/website.go 的 CreateWebsite switch 中添加 constant.Proxy case:
环境信息
Beta Was this translation helpful? Give feedback.
All reactions