2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 03:07:20 +08:00

feat: 网站支持设置日志路径

This commit is contained in:
2026-01-26 18:39:23 +08:00
parent c4f6dd0be2
commit 9fce7323a6
3 changed files with 43 additions and 2 deletions

View File

@@ -682,7 +682,19 @@ func (r *websiteRepo) Update(ctx context.Context, req *request.WebsiteUpdate) er
}
}
// 高级设置(限流限速、真实 IP、基本认证
// 高级设置(日志路径、限流限速、真实 IP、基本认证
// 日志路径
if req.AccessLog != "" {
if err = vhost.SetAccessLog(req.AccessLog); err != nil {
return err
}
}
if req.ErrorLog != "" {
if err = vhost.SetErrorLog(req.ErrorLog); err != nil {
return err
}
}
// 限流限速
if req.RateLimit != nil {
if err = vhost.SetRateLimit(req.RateLimit); err != nil {
return err

View File

@@ -71,6 +71,8 @@ type WebsiteUpdate struct {
Redirects []types.Redirect `json:"redirects"`
// 高级设置
AccessLog string `json:"access_log"` // 访问日志路径
ErrorLog string `json:"error_log"` // 错误日志路径
RateLimit *types.RateLimit `json:"rate_limit"` // 限流限速配置
RealIP *types.RealIP `json:"real_ip"` // 真实 IP 配置
BasicAuth map[string]string `json:"basic_auth"` // 基本认证配置

View File

@@ -433,7 +433,17 @@ const getRedirectTypeLabel = (type: string) => {
return option ? option.label : type
}
// ========== 高级设置相关(限流限速、真实 IP、基本认证==========
// ========== 高级设置相关(日志设置、限流限速、真实 IP、基本认证==========
// 默认日志路径
const defaultAccessLog = computed(() => `/opt/ace/sites/${setting.value.name}/log/access.log`)
const defaultErrorLog = computed(() => `/opt/ace/sites/${setting.value.name}/log/error.log`)
// 重置日志路径为默认值
const resetLogPaths = () => {
setting.value.access_log = defaultAccessLog.value
setting.value.error_log = defaultErrorLog.value
}
// 限流限速是否启用
const rateLimitEnabled = computed({
get: () => setting.value.rate_limit !== null,
@@ -1177,6 +1187,23 @@ const removeCustomConfig = (index: number) => {
</n-tab-pane>
<n-tab-pane name="advanced" :tab="$gettext('Advanced Settings')">
<n-flex vertical>
<!-- 日志设置 -->
<n-card :title="$gettext('Log Settings')" mb-16>
<n-form label-placement="left" label-width="140px">
<n-form-item :label="$gettext('Access Log')">
<n-input v-model:value="setting.access_log" :placeholder="defaultAccessLog" />
</n-form-item>
<n-form-item :label="$gettext('Error Log')">
<n-input v-model:value="setting.error_log" :placeholder="defaultErrorLog" />
</n-form-item>
<n-form-item>
<n-button secondary size="small" @click="resetLogPaths">
{{ $gettext('Reset to Default') }}
</n-button>
</n-form-item>
</n-form>
</n-card>
<!-- 限流限速设置 -->
<n-card :title="$gettext('Rate Limiting')" mb-16>
<n-form label-placement="left" label-width="140px">