mirror of
https://github.com/digitalocean/nginxconfig.io
synced 2024-11-10 04:24:12 +00:00
Allow custom proxy host header to be set (#393)
* ✨ feat: proxy header override * 🐛 fix: missing translations key * 🐛 fix: missing translations key, again 😅 * Update src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js Co-authored-by: Matt Cowley <me@mattcowley.co.uk> * 💡 chore: bump copyright year * 🎨 refactor: update key to proxyHostHeader and i18n messages * 🎨 refactor: fix key in template Co-authored-by: Matt Cowley <me@mattcowley.co.uk>
This commit is contained in:
parent
4fabd0c0d9
commit
1afe9384fd
13 changed files with 47 additions and 11 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -33,7 +33,6 @@ export default global => {
|
||||||
config['# Proxy headers'] = '';
|
config['# Proxy headers'] = '';
|
||||||
config['proxy_set_header Upgrade'] = '$http_upgrade';
|
config['proxy_set_header Upgrade'] = '$http_upgrade';
|
||||||
config['proxy_set_header Connection'] = '$connection_upgrade';
|
config['proxy_set_header Connection'] = '$connection_upgrade';
|
||||||
config['proxy_set_header Host'] = '$host';
|
|
||||||
config['proxy_set_header X-Real-IP'] = '$remote_addr';
|
config['proxy_set_header X-Real-IP'] = '$remote_addr';
|
||||||
config['proxy_set_header Forwarded'] = '$proxy_add_forwarded';
|
config['proxy_set_header Forwarded'] = '$proxy_add_forwarded';
|
||||||
if (global.reverseProxy.proxyCoexistenceXForwarded.computed == 'passOn') {
|
if (global.reverseProxy.proxyCoexistenceXForwarded.computed == 'passOn') {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -279,6 +279,7 @@ export default (domain, domains, global, ipPortPairs) => {
|
||||||
if (domain.reverseProxy.reverseProxy.computed) {
|
if (domain.reverseProxy.reverseProxy.computed) {
|
||||||
const locConf = [];
|
const locConf = [];
|
||||||
locConf.push(['proxy_pass', domain.reverseProxy.proxyPass.computed]);
|
locConf.push(['proxy_pass', domain.reverseProxy.proxyPass.computed]);
|
||||||
|
locConf.push(['proxy_set_header Host', domain.reverseProxy.proxyHostHeader.computed]);
|
||||||
|
|
||||||
if (global.tools.modularizedStructure.computed) {
|
if (global.tools.modularizedStructure.computed) {
|
||||||
// Modularized
|
// Modularized
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.php} aktiviert ist.`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.php} aktiviert ist.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.python} aktiviert ist.`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.python} aktiviert ist.`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxy}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxy}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2020 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} cannot be enabled whilst ${common.php} is enabled.`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} cannot be enabled whilst ${common.php} is enabled.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} cannot be enabled whilst ${common.python} is enabled.`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} cannot be enabled whilst ${common.python} is enabled.`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header',
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} no se puede habilitar mientras ${common.php} está habilitado.`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} no se puede habilitar mientras ${common.php} está habilitado.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} no se puede habilitar mientras ${common.python} está habilitado.`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} no se puede habilitar mientras ${common.python} está habilitado.`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.php}.`,
|
reverseProxyCannotBeEnabledWithPhp: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.php}.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.python}.`,
|
reverseProxyCannotBeEnabledWithPython: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.python}.`,
|
||||||
enableReverseProxy: `${common.enable} le ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} le ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.php} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.php} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.python} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`,
|
reverseProxyCannotBeEnabledWithPython: `${common.python} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`,
|
||||||
enableReverseProxy: `${common.reverseProxyLower}を${common.enable}`,
|
enableReverseProxy: `${common.reverseProxyLower}を${common.enable}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.php}.`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.php}.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.python}.`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.python}.`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2020 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.php} estiver habilitado.`,
|
reverseProxyCannotBeEnabledWithPhp: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.php} estiver habilitado.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.python} estiver habilitado.`,
|
reverseProxyCannotBeEnabledWithPython: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.python} estiver habilitado.`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2021 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} не может быть включен, пока включен ${common.php}.`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} не может быть включен, пока включен ${common.php}.`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} не может быть включен, пока включен ${common.python}.`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} не может быть включен, пока включен ${common.python}.`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2020 DigitalOcean
|
Copyright 2022 DigitalOcean
|
||||||
|
|
||||||
This code is licensed under the MIT License.
|
This code is licensed under the MIT License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy}在启用${common.php}时无法启用。`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy}在启用${common.php}时无法启用。`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy}在启用${common.python}时无法启用。`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy}在启用${common.python}时无法启用。`,
|
||||||
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,4 +31,5 @@ export default {
|
||||||
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} 在啟用 ${common.php} 時無法啟用。`,
|
reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} 在啟用 ${common.php} 時無法啟用。`,
|
||||||
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} 在啟用 ${common.python} 時無法啟用。`,
|
reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} 在啟用 ${common.python} 時無法啟用。`,
|
||||||
enableReverseProxy: `${common.enable}${common.reverseProxyLower}`,
|
enableReverseProxy: `${common.enable}${common.reverseProxyLower}`,
|
||||||
|
proxyHostHeader: 'Proxy Host header', // TODO: translate
|
||||||
};
|
};
|
||||||
|
|
|
@ -99,6 +99,24 @@ THE SOFTWARE.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="proxyHostHeaderEnabled" class="field is-horizontal">
|
||||||
|
<div class="field-label">
|
||||||
|
<label class="label">{{ $t('templates.domainSections.reverseProxy.proxyHostHeader') }}</label>
|
||||||
|
</div>
|
||||||
|
<div class="field-body">
|
||||||
|
<div :class="`field${proxyHostHeaderChanged ? ' is-changed' : ''}`">
|
||||||
|
<div class="control">
|
||||||
|
<input
|
||||||
|
v-model="proxyHostHeader"
|
||||||
|
class="input"
|
||||||
|
type="text"
|
||||||
|
:placeholder="$props.data.proxyHostHeader.default"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -120,6 +138,10 @@ THE SOFTWARE.
|
||||||
default: 'http://127.0.0.1:3000',
|
default: 'http://127.0.0.1:3000',
|
||||||
enabled: false,
|
enabled: false,
|
||||||
},
|
},
|
||||||
|
proxyHostHeader: {
|
||||||
|
default: '$host',
|
||||||
|
enabled: false,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -157,11 +179,15 @@ THE SOFTWARE.
|
||||||
this.$props.data.path.computed = this.$props.data.path.value;
|
this.$props.data.path.computed = this.$props.data.path.value;
|
||||||
this.$props.data.proxyPass.enabled = true;
|
this.$props.data.proxyPass.enabled = true;
|
||||||
this.$props.data.proxyPass.computed = this.$props.data.proxyPass.value;
|
this.$props.data.proxyPass.computed = this.$props.data.proxyPass.value;
|
||||||
|
this.$props.data.proxyHostHeader.enabled = true;
|
||||||
|
this.$props.data.proxyHostHeader.computed = this.$props.data.proxyHostHeader.value;
|
||||||
} else {
|
} else {
|
||||||
this.$props.data.path.enabled = false;
|
this.$props.data.path.enabled = false;
|
||||||
this.$props.data.path.computed = '';
|
this.$props.data.path.computed = '';
|
||||||
this.$props.data.proxyPass.enabled = false;
|
this.$props.data.proxyPass.enabled = false;
|
||||||
this.$props.data.proxyPass.computed = '';
|
this.$props.data.proxyPass.computed = '';
|
||||||
|
this.$props.data.proxyHostHeader.enabled = false;
|
||||||
|
this.$props.data.proxyHostHeader.computed = '';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true,
|
deep: true,
|
||||||
|
|
Loading…
Reference in a new issue