diff --git a/install/sql/incremental/upd_0089.sql b/install/sql/incremental/upd_0089.sql new file mode 100644 index 0000000000000000000000000000000000000000..5c676788d6679d74c4b44eae77dfee3ca2cf7d65 --- /dev/null +++ b/install/sql/incremental/upd_0089.sql @@ -0,0 +1,6 @@ +-- add new proxy_protocol column +ALTER TABLE `web_domain` + ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'y' AFTER `log_retention`; + +-- Update old entrys +UPDATE `web_domain` SET `proxy_protocol` = 'y'; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 18b3ef57ebad6eac601268db1433e17f040b77af..6998257046c276162d2e724f12bf4579dd59ffcb 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -2071,6 +2071,7 @@ CREATE TABLE `web_domain` ( `https_port` int(11) unsigned NOT NULL DEFAULT '443', `folder_directive_snippets` text, `log_retention` int(11) NOT NULL DEFAULT '10', + `proxy_protocol` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`domain_id`), UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) ) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 2663cdd0e0ee38dab40e37ede0a4b5ff96c86869..ef3676f05d56021b95f25acbe7b99048e82058ce 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -820,6 +820,28 @@ $form["tabs"]['web'] = array( 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'vhost_proxy_protocol_enabled' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'vhost_proxy_protocol_http_port' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '880', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'vhost_proxy_protocol_https_port' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '8443', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), 'vhost_conf_dir' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index bccdcc42c05cd94a624c6e6e04ad1aff5f93811a..4a48ea19ce1e5a4a919c0e0d3ae038e4f7136b9b 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 39531461c3cfcaceff6bc6f57570584e434bfb0e..1e39776aacf05958c01ff9d19afc285fcce78561 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index f57a2310f23c0ceddc43495d9750377163affa7d..be7da0ceca9277c2a71fd8ae2ffad0418c7b27bf 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -301,3 +301,6 @@ $wb['content_filter_txt'] = 'Filtro de conteúdo'; $wb['rspamd_url_txt'] = 'URL do rspamd'; $wb['rspamd_user_txt'] = 'Usuário do rspamd'; $wb['rspamd_password_txt'] = 'Senha do rspamd'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index 14f0b91d3b897404ac226906c8bb9a17529a845b..9bcd747c84934dfbf18ed9c1c29a56554520c348 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index a97d78b8eb358977b7bc1c4d6dc1c20a330d513d..218742e5cf01c70b9c42a59d7c962c73f0b446fc 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 960381e7c12f9b94347f66d665170145b69eab17..792d5de9bc28f0fe2c54d573b176a14bc10c791c 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content-Filter'; $wb['rspamd_url_txt'] = 'Rspamd-URL'; $wb['rspamd_user_txt'] = 'Rspamd-Benutzer'; $wb['rspamd_password_txt'] = 'Rspamd-Passwort'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 73e7ef1bfda82d68b86d5f03fd5f364535a9f681..4dfd60866783a29409253d26c197284e71ca026d 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 84992261bb47fbbed509e6741f9190365aa751cc..5e7a7071d42853500fd0187ee3515ef5b4c95b95 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 01350367ae29fb45e74cd7702447a6d0d5e41952..e8164da4a0b8639c3bbf2cb0daedb6428a4bb907 100755 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 6caf643abe3a6a4f6df4f379a1eafae81607bdcb..94af4c8e0efd051c06ab5881231c2925b71b99b7 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index 25f737568867a8d8f1ddbd68c550af1c613dc673..3586fd5d609dda04aa872be7d3bafed1864508b0 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index faf08f4201b64d73d4f1ce505f33eca865664dcf..f233aec8326ce43114ce1eeb8daab5363f0a701b 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 6347afb7da1107e5f21ebd3144be196d7b5b43f3..1df1da23ce63dd93988f4cc40f4ff6d2ab831493 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 9a28dff300ade469f23a57d44590428ba6fc8ef2..4d99bd6323a7c9395c2f45ebc3af02be26c8cb4d 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 3dc37a3c1d4664076f251417a922c7b0e2879df0..21b846152946179c779c48fc94d74ac42902e587 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 72bef72c4b5feb545cad3dcabd18701eaa1290a3..1241b89e59add3a99fc1717f71693300dcb7da47 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 2884f304ec448dc52523bf935c1cce3c08f84e43..4ac525328b8138b509b92cf5c254bad3feddddc8 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 29cb94e96c2ca30e8464c0edd4e9efaa4cf4336b..45876422e0838fcbb7bb864a08cc0d24b822ec34 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index 3703c759ed1c28348fed478677debf813ae82800..7f29d9b161d04d18e2514f7fdcec0325930cf239 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 32514761262ca0566d695b17ce12c943a5ef99d6..1a3a2df2dcd7f87602e993f691c864e2a7410066 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index b2f0b407d67f0e5837f10401abd793c6418242b9..1352fa993074270e4cad04779e5f5917f5629f28 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 1103baa4d2081d2d1b47a64f492d4c4e91418535..d2363b624aeedb2f0ed5b5687de754bf911e2383 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 125e0b1ea22c12167a3fa6c2b3c4a297b1c65648..6c272fc17acf7379d62ed83ff655537f0ab4f3d2 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -300,4 +300,7 @@ $wb['content_filter_txt'] = 'Content Filter'; $wb['rspamd_url_txt'] = 'Rspamd URL'; $wb['rspamd_user_txt'] = 'Rspamd User'; $wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 3b63e881f906e277ed46c8ec13b368c4fdb98976..27058881dc390f839190932e44e045b03fab365a 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -294,4 +294,7 @@ $wb['log_retention_txt'] = 'Günlük Tutma Süresi (Gün)'; $wb['log_retention_error_ispositive'] = 'Günlük tutma süresi 0 deÄŸerinden büyük bir sayı olmalıdır'; $wb['php_default_name_txt'] = 'Varsayılan PHP Sürümü Açıklaması'; $wb['php_default_name_error_empty'] = 'Varsayılan PHP sürümü açıklaması boÅŸ olamaz'; +$wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; +$wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; +$wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; ?> diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index eb285bbc078c6663ad4681e16493d4f131088555..4d11850ebc23f226c6f00d4d65a5ddd1bc9787a1 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -54,6 +54,20 @@ {tmpl_var name='vhost_rewrite_v6'} </div> </div> + <div class="form-group"> + <label for="vhost_proxy_protocol_enabled" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_enabled_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='vhost_proxy_protocol_enabled'} + </div> + </div> + <div class="form-group"> + <label for="vhost_proxy_protocol_http_port" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_http_port_txt'}</label> + <div class="col-sm-9"><input type="text" name="vhost_proxy_protocol_http_port" id="vhost_proxy_protocol_http_port" value="{tmpl_var name='vhost_proxy_protocol_http_port'}" class="form-control"/></div> + </div> + <div class="form-group"> + <label for="vhost_proxy_protocol_https_port" class="col-sm-3 control-label">{tmpl_var name='vhost_proxy_protocol_https_port_txt'}</label> + <div class="col-sm-9"><input type="text" name="vhost_proxy_protocol_https_port" id="vhost_proxy_protocol_https_port" value="{tmpl_var name='vhost_proxy_protocol_https_port'}" class="form-control"/></div> + </div> <div class="form-group apache"> <label for="vhost_conf_dir" class="col-sm-3 control-label">{tmpl_var name='vhost_conf_dir_txt'}</label> <div class="col-sm-9"><input type="text" name="vhost_conf_dir" id="vhost_conf_dir" value="{tmpl_var name='vhost_conf_dir'}" class="form-control" /></div></div> diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index 838445e3615276f5a8250c039ea07e5e71bc005b..8b5a36441aedc45ab5b4ccb19577d873d89e3c6b 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -766,6 +766,12 @@ if($_SESSION["s"]["user"]["typ"] == 'admin' 'width' => '30', 'maxlength' => '255' ), + 'proxy_protocol' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), 'php_fpm_use_socket' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng index f208ab3f3698882517a59a2a062a4e51e5b7e0ec..33e3609253f73effe59077434e07f92351843438 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng index a84d915230bd3f789ed1a24b099067256c96b3af..07732b9df120af5af418f7edee577861804a85a7 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index 01a7414a98c5fd7fd5bdcb5e4a666a646cae5eeb..38869d7201b0e6707e26bc045108e89331108fe0 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -158,4 +158,5 @@ $wb['enable_pagespeed_txt'] = 'Habilitar PageSpeed'; $wb['log_retention_txt'] = 'Tempo de retenção do log de arquivos'; $wb['log_retention_error_regex'] = 'Tempo de retenção em dias (valores permitidos: mÃnimo 0, máximo 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Cota de disco não pode ser configurada para 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng index aae2f46339e8c6a275ce8531c5878d7255c12a89..ea6592e0a4d57e1063500cf36ff8efe80ce672d5 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng index deaa3269c404119e9adf80cdb112d3c8f5242cdf..ae70021b238221edffdc0356e1b817a13950a201 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng index d95b6d47e48ba54ff5d0a55d2cba7cb4c9ccf11b..bc56b403d2b8acc83328eb200cbb3c6175fb9f9a 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Log-Dateien Aufbewahrungszeit'; $wb['log_retention_error_regex'] = 'Aufbewahrungszeit in Tagen (Erlaubte Werte: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota kann nicht 0 sein.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng index aae2f46339e8c6a275ce8531c5878d7255c12a89..ea6592e0a4d57e1063500cf36ff8efe80ce672d5 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng index 0ea2c2a7967226c037300d80b41eb8be0aec0b0c..0dd4ec4a3f73ce56b4548526ed1074a746c6a8a2 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng index ae546e1c4d416668e32b112d980df7022d38cfab..ce67090685d788caef2a0c50ac6b16c73799a0a3 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -158,4 +158,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index f98c02db15e26d1414e134b1e4aa4a69861686e5..31eacbda7275a7c24957f23178d7327b7e61b5bb 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng index c7c4a144322ef29b110f7c4a3c4ccbdbec8cce8e..48bbe913043ad9eb454e4087be5f62509517f6a0 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng index 931c00a53336a2bfc6f08e92b734684162623486..ece6d134e3442976e8ec6336a85e1d790f0fdcf2 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng index 7842d770b4511077bd90176f75f7cfda7c2571fe..e0ad832ad04241071b17ccdd7885c3457b173c94 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng index a40a4b62a5d7ef6604c373258475489a05302275..7c7a6530078a6e3507cc00d203b50a3ad6d7da6c 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng index 617e7fe769b65badc85fef78f0c79d99a1a36fc2..7e61328ed964c9f71ac32684194adeb176fc28da 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng index 9fbca551a3178dfa5b54d78f30b0270d5f521d33..194704d18544fcd00acd26cf5531fb7bd0b8393b 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng index 0efd971187ddb35d2df92bc14afb18025cd3bfe8..3d225555249c2288e83dc0763208e8eae7ea697a 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng index dd007d549f12dd71f78723391d7192b01c3540f8..e0b580d96f119eb6dbdc341565b82787ed779e9e 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng index 8a426b0a1a512d90107376f315b61f44ff158581..f136e2c1c6094cd752e1c59bd93497948124a704 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng index 170f2feb044376d3b326067ca2cebad51e13d8d4..08689a0cd9893e87f0fbaf57ffdfb39768ccf817 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng index 046c2c71a6ee107f1bc473ae511dd27eed51d193..9b799d1d80e287f9fbbf614cafd04b316a7cffd6 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng index e87af3b65474f0faeba733f976c701da373756f1..dcc6b0471089aae9d3625481854f4237eab6b84a 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng index 1a2572b950cde238795bb2e3d7c6fe9e31e281ff..22959a1bb060a7a935bd35feac04f23b8fb6a94c 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng index 17e60da6e6692092e617c97f74216029acd7ec24..a688adac64ddffae9c878dcffe7bbdd31f7acf51 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -153,4 +153,5 @@ $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; ?> diff --git a/interface/web/sites/templates/web_vhost_domain_advanced.htm b/interface/web/sites/templates/web_vhost_domain_advanced.htm index 0b5ddfbd8bfb1bf818d433940f2fcee0c638f180..11f95d9cbdec9e8ef7969c2a961d8227bd42851e 100644 --- a/interface/web/sites/templates/web_vhost_domain_advanced.htm +++ b/interface/web/sites/templates/web_vhost_domain_advanced.htm @@ -49,7 +49,13 @@ <div class="form-group nginx"> <label for="https_port" class="col-sm-3 control-label">{tmpl_var name='https_port_txt'}</label> <div class="col-sm-9"><input name="https_port" id="https_port" value="{tmpl_var name='https_port'}" type="text" class="form-control" /></div> - </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='proxy_protocol_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='proxy_protocol'} + </div> + </div> <div class="phpfpm"> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='php_fpm_use_socket_txt'}</label> diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index b1db61fe1c90e9a34dbc7797060ded982ebd66de..e45226d943be5589831478aa93710ccfec66ebcc 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -1,5 +1,10 @@ server { listen <tmpl_var name='ip_address'>:<tmpl_var name='http_port'>; +<tmpl_if name='proxy_protocol' op='==' value='y'> +<tmpl_if name='proxy_protocol_http' op='>' value='0'> + listen <tmpl_var name='ip_address'>:<tmpl_var name='proxy_protocol_http'> proxy_protocol; +</tmpl_if> +</tmpl_if> <tmpl_if name='ipv6_enabled'> listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='http_port'>; </tmpl_if> @@ -8,6 +13,11 @@ server { </tmpl_if> <tmpl_if name='ssl_enabled'> listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl{tmpl_if name='enable_http2' op='==' value='y'} http2{/tmpl_if}{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if}; +<tmpl_if name='proxy_protocol' op='==' value='y'> +<tmpl_if name='proxy_protocol_https' op='>' value='0'> + listen <tmpl_var name='ip_address'>:<tmpl_var name='proxy_protocol_https'> ssl proxy_protocol; +</tmpl_if> +</tmpl_if> ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; # ssl_prefer_server_ciphers on; diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 0982a3cf41c326f51b45bfdf94fd5623328af25d..47d3cef5b1a35ea92cb61aa27732924b26f2a53f 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -12,6 +12,19 @@ <tmpl_loop name='vhosts'> <VirtualHost {tmpl_var name='ip_address'}:{tmpl_var name='port'}> + +<tmpl_if name='proxy_protocol' op='==' value='y'> +<tmpl_if name='apache_version' op='>=' value='2.4.30' format='version'> + <IfModule mod_remoteip.c> + RemoteIPProxyProtocol On + </IfModule> + </tmpl_else> + <IfModule mod_proxy_protocol.c> + ProxyProtocol On + </IfModule> +</tmpl_if> +</tmpl_if> + <tmpl_hook name='apache2_vhost:vhost_header'> <tmpl_if name='php' op='==' value='suphp'> DocumentRoot <tmpl_var name='web_document_root'> diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 59e97629cb6d1a2694ce62d2365e62a42c301d8d..f0da9e62e066d7944dcb1bd027f3ecd5268f9319 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1675,6 +1675,16 @@ class apache2_plugin { if(count($rewrite_rules) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('redirects' => $rewrite_rules); if(count($alias_seo_redirects) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('alias_seo_redirects' => $alias_seo_redirects); $vhosts[] = $tmp_vhost_arr; + + //if proxy protocol is enabled we need to add a new port to lsiten to + if($web_config['vhost_proxy_protocol_enabled'] == 'y' && $data['new']['proxy_protocol'] == 'y'){ + if((int)$web_config['vhost_proxy_protocol_http_port'] > 0) { + $tmp_vhost_arr['port'] = (int)$web_config['vhost_proxy_protocol_http_port']; + $tmp_vhost_arr['proxy_protocol'] = $data['new']['proxy_protocol']; + $vhosts[] = $tmp_vhost_arr; + } + } + unset($tmp_vhost_arr); //* Add vhost for ipv4 IP with SSL @@ -1689,6 +1699,16 @@ class apache2_plugin { } if(count($ipv4_ssl_alias_seo_redirects) > 0) $tmp_vhost_arr = $tmp_vhost_arr + array('alias_seo_redirects' => $ipv4_ssl_alias_seo_redirects); $vhosts[] = $tmp_vhost_arr; + + //if proxy protocol is enabled we need to add a new port to lsiten to + if($web_config['vhost_proxy_protocol_enabled'] == 'y' && $data['new']['proxy_protocol'] == 'y'){ + if((int)$web_config['vhost_proxy_protocol_https_port'] > 0) { + $tmp_vhost_arr['port'] = (int)$web_config['vhost_proxy_protocol_https_port']; + $tmp_vhost_arr['proxy_protocol'] = $data['new']['proxy_protocol']; + $vhosts[] = $tmp_vhost_arr; + } + } + unset($tmp_vhost_arr, $ipv4_ssl_alias_seo_redirects); $app->log('Enable SSL for: '.$domain, LOGLEVEL_DEBUG); } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index a8a3c3bf16be22f3e737ef8bfb6adf9ef32d2572..79cb017161b5def198ee69abc170ebe5ff2bbd33 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1519,6 +1519,15 @@ class nginx_plugin { } unset($tmp_output, $tmp_retval); } + + //proxy protocol settings + if($web_config['vhost_proxy_protocol_enabled'] == "y"){ + $vhost_data['proxy_protocol'] = $data['new']['proxy_protocol']; + $vhost_data['proxy_protocol_http'] = (int)$web_config['vhost_proxy_protocol_http_port']; + $vhost_data['proxy_protocol_https'] = (int)$web_config['vhost_proxy_protocol_https_port']; + }else{ + $vhost_data['proxy_protocol'] = "n"; + } // set logging variable $vhost_data['logging'] = $web_config['logging'];