v8.2.2: Add security headers and HTTP/2 support for Nginx configuration in models, templates, and JS

- Introduced `NginxProxyPassSecurity` model for managing security headers and server token settings.
- Enhanced templates and JavaScript to support `hide_server_tokens`, `security_headers`, and `hsts` options.
- Updated Ansible and migration files to align with new security and HTTP/2 features.
This commit is contained in:
Aidaho
2025-07-28 11:57:22 +03:00
parent 9755fe1513
commit 20157572c6
16 changed files with 142 additions and 28 deletions

View File

@@ -214,6 +214,7 @@ function getNginxFormData($form, form_name) {
indexed_array['locations'] = [];
indexed_array['backend_servers'] = [];
indexed_array['name_aliases'] = [];
indexed_array['security'] = {};
let headers = [];
$.map(unindexed_array, function (n, i) {
@@ -244,6 +245,12 @@ function getNginxFormData($form, form_name) {
} else {
indexed_array['ssl_offloading'] = false;
}
} else if (n['name'] === 'hsts') {
if ($('input[name="hsts"]').is(':checked')) {
indexed_array['hsts'] = true;
} else {
indexed_array['hsts'] = false;
}
} else if (n['name'] === 'http2') {
if ($('input[name="http2"]').is(':checked')) {
indexed_array['http2'] = true;
@@ -261,6 +268,15 @@ function getNginxFormData($form, form_name) {
}
indexed_array['name_aliases'].push(name);
});
let hide_server_tokens = false;
let security_headers = false;
if ($('#hide_server_tokens').is(':checked')) {
hide_server_tokens = true;
}
if ($('#security_headers').is(':checked')) {
security_headers = true;
}
indexed_array['security'] = {'hide_server_tokens': hide_server_tokens, 'security_headers': security_headers};
$('#'+form_name+' span[name="add_servers"] p').each(function (){
let server = $(this).children("input[name='servers']").val();
if (server === undefined || server === '') {
@@ -274,7 +290,7 @@ function getNginxFormData($form, form_name) {
});
let elementsForDelete = [
'servers', 'server_port', 'max_fails', 'fail_timeout', 'proxy_connect_timeout', 'proxy_read_timeout', 'proxy_send_timeout',
'headers_res', 'header_name', 'header_value', 'upstream', 'server', 'name_alias'
'headers_res', 'header_name', 'header_value', 'upstream', 'server', 'name_alias', 'hide_server_tokens', 'security_headers'
]
for (let element of elementsForDelete) {
delete indexed_array[element]