源站支持自定义回源主机名

This commit is contained in:
刘祥超
2022-03-17 15:48:08 +08:00
parent 69d6fd645b
commit 0735bc2d8a
10 changed files with 44 additions and 15 deletions

View File

@@ -64,6 +64,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
@@ -79,6 +80,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
backupOriginMaps = append(backupOriginMaps, m)
}

View File

@@ -64,6 +64,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
@@ -79,6 +80,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
backupOriginMaps = append(backupOriginMaps, m)
}

View File

@@ -64,6 +64,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
@@ -79,6 +80,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
backupOriginMaps = append(backupOriginMaps, m)
}

View File

@@ -65,6 +65,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
@@ -80,6 +81,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
backupOriginMaps = append(backupOriginMaps, m)
}

View File

@@ -66,6 +66,7 @@ func (this *AddPopupAction) RunPost(params struct {
CertIdsJSON []byte
DomainsJSON []byte
Host string
Description string
IsOn bool
@@ -157,6 +158,7 @@ func (this *AddPopupAction) RunPost(params struct {
}
}
// 专属域名
var domains = []string{}
if len(params.DomainsJSON) > 0 {
err = json.Unmarshal(params.DomainsJSON, &domains)
@@ -188,6 +190,7 @@ func (this *AddPopupAction) RunPost(params struct {
MaxIdleConns: params.MaxIdleConns,
CertRefJSON: certRefJSON,
Domains: domains,
Host: params.Host,
})
if err != nil {
this.ErrorPage(err)

View File

@@ -60,17 +60,17 @@ func (this *UpdatePopupAction) RunGet(params struct {
this.ErrorPage(err)
return
}
configData := originResp.OriginJSON
config := &serverconfigs.OriginConfig{}
var configData = originResp.OriginJSON
var config = &serverconfigs.OriginConfig{}
err = json.Unmarshal(configData, config)
if err != nil {
this.ErrorPage(err)
return
}
connTimeout := 0
readTimeout := 0
idleTimeout := 0
var connTimeout = 0
var readTimeout = 0
var idleTimeout = 0
if config.ConnTimeout != nil {
connTimeout = types.Int(config.ConnTimeout.Count)
}
@@ -108,6 +108,7 @@ func (this *UpdatePopupAction) RunGet(params struct {
"maxIdleConns": config.MaxIdleConns,
"cert": config.Cert,
"domains": config.Domains,
"host": config.RequestHost,
}
this.Show()
@@ -130,7 +131,9 @@ func (this *UpdatePopupAction) RunPost(params struct {
IdleTimeout int
CertIdsJSON []byte
DomainsJSON []byte
Host string
Description string
IsOn bool
@@ -164,8 +167,8 @@ func (this *UpdatePopupAction) RunPost(params struct {
}
portIndex = strings.LastIndex(addr, ":")
}
host := addr[:portIndex]
port := addr[portIndex+1:]
var host = addr[:portIndex]
var port = addr[portIndex+1:]
if port == "0" {
this.Fail("端口号不能为0")
}
@@ -222,6 +225,7 @@ func (this *UpdatePopupAction) RunPost(params struct {
}
}
// 专属域名
var domains = []string{}
if len(params.DomainsJSON) > 0 {
err = json.Unmarshal(params.DomainsJSON, &domains)
@@ -254,6 +258,7 @@ func (this *UpdatePopupAction) RunPost(params struct {
MaxIdleConns: params.MaxIdleConns,
CertRefJSON: certRefJSON,
Domains: domains,
Host: params.Host,
})
if err != nil {
this.ErrorPage(err)

View File

@@ -92,6 +92,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
primaryOriginMaps = append(primaryOriginMaps, m)
}
@@ -107,6 +108,7 @@ func (this *IndexAction) RunGet(params struct {
"isOn": originConfig.IsOn,
"domains": originConfig.Domains,
"hasCert": originConfig.Cert != nil,
"host": originConfig.RequestHost,
}
backupOriginMaps = append(backupOriginMaps, m)
}

View File

@@ -86,14 +86,11 @@ Vue.component("origin-list-table", {
</thead>
<tr v-for="origin in vOrigins">
<td :class="{disabled:!origin.isOn}"><a href="" @click.prevent="updateOrigin(origin.id)">{{origin.addr}} &nbsp;<i class="icon clone outline small"></i></a>
<div v-if="origin.name.length > 0" style="margin-top: 0.5em">
<tiny-basic-label>{{origin.name}}</tiny-basic-label>
</div>
<div v-if="origin.domains != null && origin.domains.length > 0">
<grey-label v-for="domain in origin.domains">{{domain}}</grey-label>
</div>
<div v-if="origin.hasCert">
<tiny-basic-label>证书</tiny-basic-label>
<div style="margin-top: 0.3em" v-if="origin.name.length > 0 || origin.hasCert || (origin.host != null && origin.host.length > 0) || (origin.domains != null && origin.domains.length > 0)">
<tiny-basic-label v-if="origin.name.length > 0">{{origin.name}}</tiny-basic-label>
<tiny-basic-label v-if="origin.hasCert">证书</tiny-basic-label>
<tiny-basic-label v-if="origin.host != null && origin.host.length > 0">主机名: {{origin.host}}</tiny-basic-label>
<span v-if="origin.domains != null && origin.domains.length > 0"><tiny-basic-label v-for="domain in origin.domains">匹配: {{domain}}</tiny-basic-label></span>
</div>
</td>
<td :class="{disabled:!origin.isOn}">{{origin.weight}}</td>

View File

@@ -45,6 +45,13 @@
<ssl-certs-box :v-single-mode="true" :v-view-size="'mini'" :v-description="'可以选择连接源站使用的证书。'"></ssl-certs-box>
</td>
</tr>
<tr v-if="isHTTP">
<td>回源主机名</td>
<td>
<input type="text" name="host" placeholder="比如example.com" maxlength="100"/>
<p class="comment">请求源站时的Host用于修改源站接收到的域名自定义Host内容中支持请求变量。</p>
</td>
</tr>
<tr v-if="isHTTP">
<td>专属域名</td>
<td>

View File

@@ -46,6 +46,13 @@
<ssl-certs-box :v-single-mode="true" :v-cert="origin.cert" :v-view-size="'mini'" :v-description="'可以选择连接源站使用的证书。'"></ssl-certs-box>
</td>
</tr>
<tr v-if="isHTTP">
<td>回源主机名</td>
<td>
<input type="text" name="host" v-model="origin.host" placeholder="比如example.com" maxlength="100"/>
<p class="comment">请求源站时的Host用于修改源站接收到的域名自定义Host内容中支持请求变量。</p>
</td>
</tr>
<tr v-if="isHTTP">
<td>专属域名</td>
<td>