Vue.component("reverse-proxy-box", { props: ["v-reverse-proxy-ref", "v-reverse-proxy-config", "v-is-location", "v-family"], data: function () { let reverseProxyRef = this.vReverseProxyRef if (reverseProxyRef == null) { reverseProxyRef = { isPrior: false, isOn: false, reverseProxyId: 0 } } let reverseProxyConfig = this.vReverseProxyConfig if (reverseProxyConfig == null) { reverseProxyConfig = { requestPath: "", stripPrefix: "", requestURI: "", requestHost: "", requestHostType: 0, addHeaders: [] } } let forwardHeaders = [ { name: "X-Real-IP", isChecked: false }, { name: "X-Forwarded-For", isChecked: false }, { name: "X-Forwarded-By", isChecked: false }, { name: "X-Forwarded-Host", isChecked: false }, { name: "X-Forwarded-Proto", isChecked: false } ] forwardHeaders.forEach(function (v) { v.isChecked = reverseProxyConfig.addHeaders.$contains(v.name) }) return { reverseProxyRef: reverseProxyRef, reverseProxyConfig: reverseProxyConfig, advancedVisible: false, family: this.vFamily, forwardHeaders: forwardHeaders } }, watch: { "reverseProxyConfig.requestHostType": function (v) { let requestHostType = parseInt(v) if (isNaN(requestHostType)) { requestHostType = 0 } this.reverseProxyConfig.requestHostType = requestHostType } }, methods: { isOn: function () { return (!this.vIsLocation || this.reverseProxyRef.isPrior) && this.reverseProxyRef.isOn }, changeAdvancedVisible: function (v) { this.advancedVisible = v }, changeAddHeader: function () { this.reverseProxyConfig.addHeaders = this.forwardHeaders.filter(function (v) { return v.isChecked }).map(function (v) { return v.name }) } }, template: `
| 是否启用反向代理 |
|
| 回源主机名(Host) |
请求源站时的Host,用于修改源站接收到的域名 ,"跟随代理服务"是指源站接收到的域名和当前代理服务保持一致 ,"跟随源站"是指源站接收到的域名仍然是填写的源站地址中的信息,不随代理服务域名改变而改变 ,自定义Host内容中支持请求变量。 |
| 自动添加的Header |
选中后,会自动向源站请求添加这些Header。 |
| 请求URI(RequestURI) |
\${requestURI}为完整的请求URI,可以使用类似于"\${requestURI}?arg1=value1&arg2=value2"的形式添加你的参数。 |
| 去除URL前缀(StripPrefix) |
可以把请求的路径部分前缀去除后再查找文件,比如把 /web/app/index.html 去除前缀 /web 后就变成 /app/index.html。 |
| 是否自动刷新缓存区(AutoFlush) |
开启后将自动刷新缓冲区数据到客户端,在类似于SSE(server-sent events)等场景下很有用。 |