mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-10 17:30:29 +08:00
源站支持自定义回源主机名
This commit is contained in:
@@ -64,6 +64,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
primaryOriginMaps = append(primaryOriginMaps, m)
|
primaryOriginMaps = append(primaryOriginMaps, m)
|
||||||
}
|
}
|
||||||
@@ -79,6 +80,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
backupOriginMaps = append(backupOriginMaps, m)
|
backupOriginMaps = append(backupOriginMaps, m)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
primaryOriginMaps = append(primaryOriginMaps, m)
|
primaryOriginMaps = append(primaryOriginMaps, m)
|
||||||
}
|
}
|
||||||
@@ -79,6 +80,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
backupOriginMaps = append(backupOriginMaps, m)
|
backupOriginMaps = append(backupOriginMaps, m)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
primaryOriginMaps = append(primaryOriginMaps, m)
|
primaryOriginMaps = append(primaryOriginMaps, m)
|
||||||
}
|
}
|
||||||
@@ -79,6 +80,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
backupOriginMaps = append(backupOriginMaps, m)
|
backupOriginMaps = append(backupOriginMaps, m)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
primaryOriginMaps = append(primaryOriginMaps, m)
|
primaryOriginMaps = append(primaryOriginMaps, m)
|
||||||
}
|
}
|
||||||
@@ -80,6 +81,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
backupOriginMaps = append(backupOriginMaps, m)
|
backupOriginMaps = append(backupOriginMaps, m)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ func (this *AddPopupAction) RunPost(params struct {
|
|||||||
CertIdsJSON []byte
|
CertIdsJSON []byte
|
||||||
|
|
||||||
DomainsJSON []byte
|
DomainsJSON []byte
|
||||||
|
Host string
|
||||||
|
|
||||||
Description string
|
Description string
|
||||||
IsOn bool
|
IsOn bool
|
||||||
@@ -157,6 +158,7 @@ func (this *AddPopupAction) RunPost(params struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 专属域名
|
||||||
var domains = []string{}
|
var domains = []string{}
|
||||||
if len(params.DomainsJSON) > 0 {
|
if len(params.DomainsJSON) > 0 {
|
||||||
err = json.Unmarshal(params.DomainsJSON, &domains)
|
err = json.Unmarshal(params.DomainsJSON, &domains)
|
||||||
@@ -188,6 +190,7 @@ func (this *AddPopupAction) RunPost(params struct {
|
|||||||
MaxIdleConns: params.MaxIdleConns,
|
MaxIdleConns: params.MaxIdleConns,
|
||||||
CertRefJSON: certRefJSON,
|
CertRefJSON: certRefJSON,
|
||||||
Domains: domains,
|
Domains: domains,
|
||||||
|
Host: params.Host,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
|
|||||||
@@ -60,17 +60,17 @@ func (this *UpdatePopupAction) RunGet(params struct {
|
|||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
configData := originResp.OriginJSON
|
var configData = originResp.OriginJSON
|
||||||
config := &serverconfigs.OriginConfig{}
|
var config = &serverconfigs.OriginConfig{}
|
||||||
err = json.Unmarshal(configData, config)
|
err = json.Unmarshal(configData, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
connTimeout := 0
|
var connTimeout = 0
|
||||||
readTimeout := 0
|
var readTimeout = 0
|
||||||
idleTimeout := 0
|
var idleTimeout = 0
|
||||||
if config.ConnTimeout != nil {
|
if config.ConnTimeout != nil {
|
||||||
connTimeout = types.Int(config.ConnTimeout.Count)
|
connTimeout = types.Int(config.ConnTimeout.Count)
|
||||||
}
|
}
|
||||||
@@ -108,6 +108,7 @@ func (this *UpdatePopupAction) RunGet(params struct {
|
|||||||
"maxIdleConns": config.MaxIdleConns,
|
"maxIdleConns": config.MaxIdleConns,
|
||||||
"cert": config.Cert,
|
"cert": config.Cert,
|
||||||
"domains": config.Domains,
|
"domains": config.Domains,
|
||||||
|
"host": config.RequestHost,
|
||||||
}
|
}
|
||||||
|
|
||||||
this.Show()
|
this.Show()
|
||||||
@@ -130,7 +131,9 @@ func (this *UpdatePopupAction) RunPost(params struct {
|
|||||||
IdleTimeout int
|
IdleTimeout int
|
||||||
|
|
||||||
CertIdsJSON []byte
|
CertIdsJSON []byte
|
||||||
|
|
||||||
DomainsJSON []byte
|
DomainsJSON []byte
|
||||||
|
Host string
|
||||||
|
|
||||||
Description string
|
Description string
|
||||||
IsOn bool
|
IsOn bool
|
||||||
@@ -164,8 +167,8 @@ func (this *UpdatePopupAction) RunPost(params struct {
|
|||||||
}
|
}
|
||||||
portIndex = strings.LastIndex(addr, ":")
|
portIndex = strings.LastIndex(addr, ":")
|
||||||
}
|
}
|
||||||
host := addr[:portIndex]
|
var host = addr[:portIndex]
|
||||||
port := addr[portIndex+1:]
|
var port = addr[portIndex+1:]
|
||||||
if port == "0" {
|
if port == "0" {
|
||||||
this.Fail("端口号不能为0")
|
this.Fail("端口号不能为0")
|
||||||
}
|
}
|
||||||
@@ -222,6 +225,7 @@ func (this *UpdatePopupAction) RunPost(params struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 专属域名
|
||||||
var domains = []string{}
|
var domains = []string{}
|
||||||
if len(params.DomainsJSON) > 0 {
|
if len(params.DomainsJSON) > 0 {
|
||||||
err = json.Unmarshal(params.DomainsJSON, &domains)
|
err = json.Unmarshal(params.DomainsJSON, &domains)
|
||||||
@@ -254,6 +258,7 @@ func (this *UpdatePopupAction) RunPost(params struct {
|
|||||||
MaxIdleConns: params.MaxIdleConns,
|
MaxIdleConns: params.MaxIdleConns,
|
||||||
CertRefJSON: certRefJSON,
|
CertRefJSON: certRefJSON,
|
||||||
Domains: domains,
|
Domains: domains,
|
||||||
|
Host: params.Host,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
primaryOriginMaps = append(primaryOriginMaps, m)
|
primaryOriginMaps = append(primaryOriginMaps, m)
|
||||||
}
|
}
|
||||||
@@ -107,6 +108,7 @@ func (this *IndexAction) RunGet(params struct {
|
|||||||
"isOn": originConfig.IsOn,
|
"isOn": originConfig.IsOn,
|
||||||
"domains": originConfig.Domains,
|
"domains": originConfig.Domains,
|
||||||
"hasCert": originConfig.Cert != nil,
|
"hasCert": originConfig.Cert != nil,
|
||||||
|
"host": originConfig.RequestHost,
|
||||||
}
|
}
|
||||||
backupOriginMaps = append(backupOriginMaps, m)
|
backupOriginMaps = append(backupOriginMaps, m)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,14 +86,11 @@ Vue.component("origin-list-table", {
|
|||||||
</thead>
|
</thead>
|
||||||
<tr v-for="origin in vOrigins">
|
<tr v-for="origin in vOrigins">
|
||||||
<td :class="{disabled:!origin.isOn}"><a href="" @click.prevent="updateOrigin(origin.id)">{{origin.addr}} <i class="icon clone outline small"></i></a>
|
<td :class="{disabled:!origin.isOn}"><a href="" @click.prevent="updateOrigin(origin.id)">{{origin.addr}} <i class="icon clone outline small"></i></a>
|
||||||
<div v-if="origin.name.length > 0" style="margin-top: 0.5em">
|
<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>{{origin.name}}</tiny-basic-label>
|
<tiny-basic-label v-if="origin.name.length > 0">{{origin.name}}</tiny-basic-label>
|
||||||
</div>
|
<tiny-basic-label v-if="origin.hasCert">证书</tiny-basic-label>
|
||||||
<div v-if="origin.domains != null && origin.domains.length > 0">
|
<tiny-basic-label v-if="origin.host != null && origin.host.length > 0">主机名: {{origin.host}}</tiny-basic-label>
|
||||||
<grey-label v-for="domain in origin.domains">{{domain}}</grey-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>
|
|
||||||
<div v-if="origin.hasCert">
|
|
||||||
<tiny-basic-label>证书</tiny-basic-label>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td :class="{disabled:!origin.isOn}">{{origin.weight}}</td>
|
<td :class="{disabled:!origin.isOn}">{{origin.weight}}</td>
|
||||||
|
|||||||
@@ -45,6 +45,13 @@
|
|||||||
<ssl-certs-box :v-single-mode="true" :v-view-size="'mini'" :v-description="'可以选择连接源站使用的证书。'"></ssl-certs-box>
|
<ssl-certs-box :v-single-mode="true" :v-view-size="'mini'" :v-description="'可以选择连接源站使用的证书。'"></ssl-certs-box>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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">
|
<tr v-if="isHTTP">
|
||||||
<td>专属域名</td>
|
<td>专属域名</td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -46,6 +46,13 @@
|
|||||||
<ssl-certs-box :v-single-mode="true" :v-cert="origin.cert" :v-view-size="'mini'" :v-description="'可以选择连接源站使用的证书。'"></ssl-certs-box>
|
<ssl-certs-box :v-single-mode="true" :v-cert="origin.cert" :v-view-size="'mini'" :v-description="'可以选择连接源站使用的证书。'"></ssl-certs-box>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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">
|
<tr v-if="isHTTP">
|
||||||
<td>专属域名</td>
|
<td>专属域名</td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
Reference in New Issue
Block a user