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'];