From 0d61c249a2e10fbaa93faaadec93391e6f9ef2ed Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 23 Jul 2020 11:28:27 +0200
Subject: [PATCH] Revert "Merge branch 'http2-always' into 'stable-3.1'"

This reverts merge request !1033
---
 .../sql/incremental/upd_dev_collection.sql    |  5 +--
 install/sql/ispconfig3.sql                    |  1 +
 install/tpl/apache_apps.vhost.master          | 16 +++++++---
 install/tpl/server.ini.master                 |  1 +
 .../web/admin/form/server_config.tform.php    |  9 ++++++
 .../web/admin/lib/lang/ar_server_config.lng   |  1 +
 .../web/admin/lib/lang/bg_server_config.lng   |  1 +
 .../web/admin/lib/lang/br_server_config.lng   |  1 +
 .../web/admin/lib/lang/ca_server_config.lng   |  1 +
 .../web/admin/lib/lang/cz_server_config.lng   |  1 +
 .../web/admin/lib/lang/de_server_config.lng   |  1 +
 .../web/admin/lib/lang/dk_server_config.lng   |  1 +
 .../web/admin/lib/lang/el_server_config.lng   |  1 +
 .../web/admin/lib/lang/en_server_config.lng   |  1 +
 .../web/admin/lib/lang/es_server_config.lng   |  1 +
 .../web/admin/lib/lang/fi_server_config.lng   |  1 +
 .../web/admin/lib/lang/fr_server_config.lng   |  1 +
 .../web/admin/lib/lang/hr_server_config.lng   |  1 +
 .../web/admin/lib/lang/hu_server_config.lng   |  1 +
 .../web/admin/lib/lang/id_server_config.lng   |  1 +
 .../web/admin/lib/lang/it_server_config.lng   |  1 +
 .../web/admin/lib/lang/ja_server_config.lng   |  1 +
 .../web/admin/lib/lang/nl_server_config.lng   |  1 +
 .../web/admin/lib/lang/pl_server_config.lng   |  1 +
 .../web/admin/lib/lang/pt_server_config.lng   |  1 +
 .../web/admin/lib/lang/ro_server_config.lng   |  1 +
 .../web/admin/lib/lang/ru_server_config.lng   |  1 +
 .../web/admin/lib/lang/se_server_config.lng   |  1 +
 .../web/admin/lib/lang/sk_server_config.lng   |  1 +
 .../web/admin/lib/lang/tr_server_config.lng   |  1 +
 .../templates/server_config_web_edit.htm      | 22 +++++++++----
 .../web/sites/form/web_vhost_domain.tform.php |  9 ++++++
 .../sites/lib/lang/ar_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/bg_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/br_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ca_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/cz_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/de_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/dk_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/el_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/en_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/es_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/fi_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/fr_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/hr_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/hu_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/id_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/it_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ja_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/nl_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/pl_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/pt_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ro_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/ru_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/se_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/sk_web_vhost_domain.lng    |  1 +
 .../sites/lib/lang/tr_web_vhost_domain.lng    |  1 +
 .../sites/templates/web_vhost_domain_ssl.htm  | 16 +++++++---
 interface/web/sites/web_vhost_domain_edit.php |  7 ++++
 server/conf/apache_apps.vhost.master          | 14 ++++++--
 server/conf/nginx_vhost.conf.master           | 32 +++++++++----------
 server/conf/vhost.conf.master                 |  8 +++--
 .../plugins-available/apache2_plugin.inc.php  | 11 +++++++
 server/plugins-available/nginx_plugin.inc.php | 12 +++++++
 64 files changed, 172 insertions(+), 41 deletions(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index 8d673ae866..bf2f02f677 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -36,8 +36,5 @@ ALTER TABLE `mail_user` ADD `disableindexer-worker` ENUM('n','y') CHARACTER SET
 -- add SSHFP and DNAME record
 ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CNAME','DNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','SSHFP','TXT','TLSA','DNSKEY') NULL DEFAULT NULL AFTER `name`;
 
--- remove SPDY option
-ALTER TABLE `web_domain` DROP COLUMN `enable_spdy`;
-
 -- was missing in incremental, inserted for fixing older installations
-ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`;
+ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`;
\ No newline at end of file
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index e0c3848aa5..c54f0ac345 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -2070,6 +2070,7 @@ CREATE TABLE `web_domain` (
   `traffic_quota_lock` enum('n','y') NOT NULL default 'n',
   `fastcgi_php_version` varchar(255) DEFAULT NULL,
   `proxy_directives` mediumtext,
+  `enable_spdy` ENUM('y','n') NULL DEFAULT 'n',
   `last_quota_notification` date NULL default NULL,
   `rewrite_rules` mediumtext,
   `added_date` date NULL DEFAULT NULL,
diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master
index 14f0f10da2..9cccf8d38e 100644
--- a/install/tpl/apache_apps.vhost.master
+++ b/install/tpl/apache_apps.vhost.master
@@ -10,14 +10,20 @@
 <VirtualHost {tmpl_var name='apps_vhost_ip'}:{tmpl_var name='apps_vhost_port'}>
   ServerAdmin webmaster@localhost
   {tmpl_var name='apps_vhost_servername'}
-
+  
   <FilesMatch "\.ph(p3?|tml)$">
     SetHandler None
   </FilesMatch>
-
+  
   <IfModule mod_headers.c>
 	RequestHeader unset Proxy early
   </IfModule>
+  
+  {tmpl_if name="enable_spdy" op="==" value="y"}
+  <IfModule spdy_module>
+	SpdyEnabled on
+  </IfModule>
+  {/tmpl_if}
 
   <IfModule mod_php5.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
@@ -33,7 +39,7 @@
 		</tmpl_if>
     </Directory>
   </IfModule>
-
+  
   <IfModule mod_php7.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     AddType application/x-httpd-php .php
@@ -48,7 +54,7 @@
 		</tmpl_if>
     </Directory>
   </IfModule>
-
+  
   <IfModule mod_fcgid.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     SuexecUserGroup ispapps ispapps
@@ -81,3 +87,5 @@
 
 
 </VirtualHost>
+
+
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index c500fb0cc2..5edc09807c 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -94,6 +94,7 @@ php_ini_path_apache=/etc/php5/apache2/php.ini
 php_ini_path_cgi=/etc/php5/cgi/php.ini
 check_apache_config=y
 enable_sni=y
+enable_spdy=n
 skip_le_check=n
 enable_ip_wildcard=y
 overtraffic_notify_admin=y
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index de2caf1750..0d570f2e94 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -1317,6 +1317,15 @@ $form["tabs"]['web'] = array(
 			'width' => '40',
 			'maxlength' => '255'
 		),
+		'enable_spdy' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default'  => 'y',
+			'value' => array (
+				0 => 'n',
+				1 => 'y'
+			)
+		),
 		'apps_vhost_enabled' => array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index 4123c113d1..0bd4567220 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 463d1c7b2a..ae760d95cc 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 65a2dc4fd7..b24f1ef905 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -277,6 +277,7 @@ $wb['network_filesystem_txt'] = 'Sistema de arquivos de rede';
 $wb['php_ini_check_minutes_txt'] = 'Verificar alterações no php.ini a cada X minutos';
 $wb['php_ini_check_minutes_error_empty'] = 'Por favor, insira um valor para verificação de alterações no php.ini.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = sem verificações';
+$wb['enable_spdy_txt'] = 'Tornar SPDY/HTTP2 disponível';
 $wb['web_settings_txt'] = 'Servidor web';
 $wb['xmpp_server_txt'] = 'Servidor xmpp';
 $wb['xmpp_use_ipv6_txt'] = 'Usar IPv6';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 496df78f77..b4af211185 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -272,6 +272,7 @@ $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index fbc1d777c3..76783fd95a 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -269,6 +269,7 @@ $wb['disabled_txt'] = 'Vypnuto';
 $wb['php_ini_check_minutes_txt'] = 'Provádět kontrolu změny obsahu souboru php.ini každých X minut';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Použít IPv6';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 1646360a7a..7487bec764 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -275,6 +275,7 @@ $wb['php_ini_check_minutes_info_txt'] = '0 = keine Prüfung';
 $wb['php_handler_txt'] = 'Standard-PHP-Handler';
 $wb['php_fpm_default_chroot_txt'] = 'Default chrooted PHP-FPM';
 $wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM';
+$wb['enable_spdy_txt'] = 'Stellt SPDY/HTTP2 zur Verfügung';
 $wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN';
 $wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled';
 $wb['disabled_txt'] = 'Disabled';
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index 476e432161..44ffc53391 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -273,6 +273,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index cf215b939e..46ce9bfcfc 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index e12e1d4042..2eea4f220d 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -277,6 +277,7 @@ $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index f343931695..d400e81367 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -68,6 +68,7 @@ $wb['do_not_try_rescue_mongodb_txt'] = 'Deshabilitar monitorización de MongoDB'
 $wb['do_not_try_rescue_mysql_txt'] = 'Deshabilitar monitorización de MySQL';
 $wb['enable_ip_wildcard_txt'] = 'Activar comodín IP (*)';
 $wb['enable_sni_txt'] = 'Habilitar SNI';
+$wb['enable_spdy_txt'] = 'Hacer que SPDY/HTTP2 esté disponible';
 $wb['fastcgi_alias_error_empty'] = 'El alias de FastCGI está vacío.';
 $wb['fastcgi_alias_error_regex'] = 'El alias de fastcgi es inválido.';
 $wb['fastcgi_alias_txt'] = 'Alias de FastCGI';
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 6eefadb45f..b5fd51c4f8 100644
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 8871795209..4b020da068 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -272,6 +272,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index b36fd13486..93333280b6 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 789e86a649..e48f231f2e 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index ee197a4d0a..4023e619b0 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index cd71123720..928ca7ebc2 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -272,6 +272,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 4ef8d13422..1220886fc3 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 5b5fcf122b..9ff06f34d3 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 1d6caa8e5e..95b289ef72 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index fcf7a23e88..31360c0b0e 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 2c3b4fdce4..74055e9874 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index f3f5a47c7d..8754aece3c 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'Стойкость DKIM';
 $wb['php_ini_check_minutes_txt'] = 'Проверять изменения в PHP.ini файле каждые Х минут';
 $wb['php_ini_check_minutes_error_empty'] = 'Пожалуйста, укажите значение, как часто php.ini должен быть проверен на изменения.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = не проверять';
+$wb['enable_spdy_txt'] = 'Сделать SPDY/HTTP2 доступным';
 $wb['web_settings_txt'] = 'Web-сервер';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Использовать IPv6';
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index 634c3655a7..c45116d4fa 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 50c8c0b4c9..c4858143b0 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -274,6 +274,7 @@ $wb['dkim_strength_txt'] = 'DKIM strength';
 $wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
 $wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = no check';
+$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available';
 $wb['web_settings_txt'] = 'Web Server';
 $wb['xmpp_server_txt'] = 'XMPP Server';
 $wb['xmpp_use_ipv6_txt'] = 'Use IPv6';
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 09aa3adf2d..b52479ecf5 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -276,6 +276,7 @@ $wb['network_filesystem_txt'] = 'AÄŸ Dosya Sistemi';
 $wb['php_ini_check_minutes_txt'] = 'Her X dakikada php.ini dosyasındaki değişiklikler denetlensin';
 $wb['php_ini_check_minutes_error_empty'] = 'php.ini dosyasındaki değişikliklerin kaç dakikada bir denetleneceğini yazın.';
 $wb['php_ini_check_minutes_info_txt'] = '0 = denetim yapılmaz';
+$wb['enable_spdy_txt'] = 'SPDY/HTTP2 Kullanılsın';
 $wb['web_settings_txt'] = 'Web Sunucu';
 $wb['xmpp_server_txt'] = 'XMPP Sunucu';
 $wb['xmpp_use_ipv6_txt'] = 'IPv6 Kullanılsın';
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 64173549c9..f5f38affe7 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -163,7 +163,7 @@
 			<div class="form-group">
 				<label class="col-sm-3 control-label">{tmpl_var name='overquota_db_notify_client_txt'}</label>
 				<div class="col-sm-9">
-					{tmpl_var name='overquota_db_notify_client'}
+					{tmpl_var name='overquota_db_notify_client'}	
 				 </div>
 			</div>
             <div class="form-group">
@@ -197,6 +197,14 @@
                         {tmpl_var name='enable_sni'}
                     </div>
                 </div>
+				<div class="form-group">
+					<label class="col-sm-3 control-label">
+						<tmpl_var name="enable_spdy_txt">
+					</label>
+					<div class="col-sm-9">
+						<tmpl_var name="enable_spdy">
+					</div>
+				</div>
                 <div class="form-group">
                     <label for="CA_path" class="col-sm-3 control-label">{tmpl_var name='CA_path_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" autocomplete="new-password" class="form-control" /></div></div>
@@ -249,7 +257,7 @@
                 <div class="form-group">
                     <label for="connect_userid_to_webid_start" class="col-sm-3 control-label">{tmpl_var name='connect_userid_to_webid_start_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="connect_userid_to_webid_start" id="connect_userid_to_webid_start" value="{tmpl_var name='connect_userid_to_webid_start'}" class="form-control" /></div></div>
-
+            
 	  <!-- End content -->
 	  </div>
 	</div>
@@ -353,7 +361,7 @@
                 <div class="form-group">
                     <label for="apps_vhost_servername" class="col-sm-3 control-label">{tmpl_var name='apps_vhost_servername_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="apps_vhost_servername" id="apps_vhost_servername" value="{tmpl_var name='apps_vhost_servername'}" class="form-control" /></div></div>
-
+            
 	  <!-- End content -->
 	  </div>
 	</div>
@@ -381,15 +389,15 @@
                 <div class="form-group">
                     <label for="awstats_buildstaticpages_pl" class="col-sm-3 control-label">{tmpl_var name='awstats_buildstaticpages_pl_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="awstats_buildstaticpages_pl" id="awstats_buildstaticpages_pl" value="{tmpl_var name='awstats_buildstaticpages_pl'}" class="form-control" /></div></div>
-
+            
 	  <!-- End content -->
 	  </div>
 	</div>
   </div>
 </div>
-
+			
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
-
+            
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_config_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_config_list.php">{tmpl_var name='btn_cancel_txt'}</button>
@@ -402,7 +410,7 @@
         serverType = $(this).val();
         adjustForm();
     });
-
+    
     function adjustForm(){
         if(serverType == "nginx"){
             jQuery('.nginx').show();
diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php
index 7da71281cf..beb952bfe6 100644
--- a/interface/web/sites/form/web_vhost_domain.tform.php
+++ b/interface/web/sites/form/web_vhost_domain.tform.php
@@ -591,6 +591,15 @@ if($ssl_available) {
 				'default' => '',
 				'value'  => array('' => 'none_txt', 'save' => 'save_certificate_txt', 'create' => 'create_certificate_txt', 'del' => 'delete_certificate_txt')
 			),
+			'enable_spdy' => array (
+				'datatype' => 'VARCHAR',
+				'formtype' => 'CHECKBOX',
+				'default'  => 'n',
+				'value' => array (
+					0 => 'n',
+					1 => 'y'
+				)
+			),
 			//#################################
 			// END Datatable fields
 			//#################################
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 136829a7b2..f9c396616b 100644
--- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng
@@ -140,6 +140,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 8c48f035fe..1ab6c244cc 100644
--- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 a3a14e335b..a074b160a3 100644
--- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng
@@ -143,6 +143,7 @@ $wb['backup_excludes_error_regex'] = 'Os diretórios excluídos possuem caracter
 $wb['subdomain_error_empty'] = 'O subdomínio está em branco ou possui caracteres inválidos.';
 $wb['btn_save_txt'] = 'Salvar';
 $wb['btn_cancel_txt'] = 'Cancelar';
+$wb['enable_spdy_txt'] = 'Habilitar SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Carregar detalhes do cliente';
 $wb['load_my_data_txt'] = 'Carregar detalhes do contato';
 $wb['reset_client_data_txt'] = 'Limpar dados';
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 cf25d81260..d0a5a58bd3 100644
--- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 ea814b0cb9..250f98c890 100644
--- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng
@@ -138,6 +138,7 @@ $wb['server_chosen_not_ok'] = 'Vybraný server není pro tento účet povolen.';
 $wb['subdomain_error_empty'] = 'Pole subdomény je prázdné nebo obsahuje neplatné znaky.';
 $wb['btn_save_txt'] = 'Uložit';
 $wb['btn_cancel_txt'] = 'Zrušit';
+$wb['enable_spdy_txt'] = 'Povolit SPDY / HTTP2';
 $wb['load_client_data_txt'] = 'Nahrát údaje z podrobností registrovaného klienta';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Obnovit údaje (resetovat)';
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 449bcb588a..e4424799a6 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -138,6 +138,7 @@ $wb['host_txt'] = 'Host';
 $wb['domain_error_wildcard'] = 'Wildcard-Subdomains sind nicht erlaubt.';
 $wb['btn_save_txt'] = 'Speichern';
 $wb['btn_cancel_txt'] = 'Abbrechen';
+$wb['enable_spdy_txt'] = 'Aktiviere SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Kundendaten übernehmen';
 $wb['load_my_data_txt'] = 'Meine Kontaktdaten laden';
 $wb['reset_client_data_txt'] = 'Daten verwerfen';
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 cf25d81260..d0a5a58bd3 100644
--- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.';
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 f39ce19a9b..d4cb988a17 100644
--- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng
@@ -140,6 +140,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 497fcd1993..66bfd1ca19 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
@@ -143,6 +143,7 @@ $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid c
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = "Save";
 $wb['btn_cancel_txt'] = "Cancel";
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 3f60826008..504bea2aa6 100644
--- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng
@@ -138,6 +138,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 82fd44a56a..460fbadff7 100644
--- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 5d817c611b..306a48aedc 100644
--- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid c
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 4d70565928..d883532397 100644
--- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 d8bb15537b..4d54b0a4c7 100644
--- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 39df360c89..3aa65982cd 100644
--- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 807039ca6c..cc890d855e 100644
--- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng
@@ -140,6 +140,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 288b9fab11..bfb5e8b137 100644
--- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 27371eee35..d67cde421a 100644
--- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Opslaan';
 $wb['btn_cancel_txt'] = 'Annuleren';
+$wb['enable_spdy_txt'] = 'SPDY/HTTP2 inschakelen';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 f1e945df6f..c24c319fe5 100644
--- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 9eb927f000..dc6895c3e1 100644
--- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 0127c4ee80..8e27105a6a 100644
--- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng
@@ -140,6 +140,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 827f149dd8..c9a2a0a4ba 100644
--- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'Выбранный сервер запрещён
 $wb['subdomain_error_empty'] = 'Поле поддомена пуст или содержит недопустимые символы.';
 $wb['btn_save_txt'] = 'Сохранить';
 $wb['btn_cancel_txt'] = 'Отменить';
+$wb['enable_spdy_txt'] = 'Включить SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Загрузить информацию о клиенте';
 $wb['load_my_data_txt'] = 'Загрузить мои контактные данные';
 $wb['reset_client_data_txt'] = 'Сброс данных';
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 1bac2468c1..ec509b333a 100644
--- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng
@@ -140,6 +140,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
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 c3b680b2b4..0509b1a3bb 100644
--- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng
@@ -139,6 +139,7 @@ $wb['server_chosen_not_ok'] = 'The selected server is not allowed for this accou
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['btn_save_txt'] = 'Save';
 $wb['btn_cancel_txt'] = 'Cancel';
+$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2';
 $wb['load_client_data_txt'] = 'Load client details';
 $wb['load_my_data_txt'] = 'Load my contact details';
 $wb['reset_client_data_txt'] = 'Reset data';
diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
index 2e004d87ef..071df396e4 100644
--- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng
@@ -142,6 +142,7 @@ $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karak
 $wb['subdomain_error_empty'] = 'Alt etki alanı boş ya da geçersiz karakterler içeriyor.';
 $wb['btn_save_txt'] = 'Kaydet';
 $wb['btn_cancel_txt'] = 'Ä°ptal';
+$wb['enable_spdy_txt'] = 'SPDY kullanılsın';
 $wb['load_client_data_txt'] = 'Müşteri Bilgilerini Yükle';
 $wb['load_my_data_txt'] = 'Profil Bilgilerimi Yükle';
 $wb['reset_client_data_txt'] = 'Verileri Sıfırla';
diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm
index d4ec6749e2..8b3d986a02 100644
--- a/interface/web/sites/templates/web_vhost_domain_ssl.htm
+++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm
@@ -62,7 +62,15 @@
                     {tmpl_var name='ssl_action'}
                 </select></div>
             </div>
-
+			{tmpl_if name="is_spdy_enabled"}
+			<div class="form-group">
+				<label class="col-sm-3 control-label">{tmpl_var name='enable_spdy_txt'}</label>
+				<div class="col-sm-9">
+					{tmpl_var name="enable_spdy"}
+				</div>
+			</div>
+			{/tmpl_if}
+        
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
@@ -83,11 +91,11 @@
 	$('#load_data').click(function(){
 		loadClientData();
 	});
-
-
+	
+	
 	function loadClientData() {
         var web_id = $("input[name=id]").val();
-
+        
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {'web_id': web_id, 'type': "getclientssldata"}, function(data) {
 			$('#ssl_organisation').val(data['company_name']);
 			$('#ssl_locality').val(data['city']);
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 0d770476d1..82da18ae1e 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -840,6 +840,7 @@ class page_action extends tform_actions {
 
 		$app->tpl->setVar('vhostdomain_type', $this->_vhostdomain_type, true);
 
+		$app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y'));
 		$app->tpl->setVar('is_pagespeed_enabled', ($web_config['nginx_enable_pagespeed'] === 'y'));
 		$app->tpl->setVar("is_admin", $is_admin);
 
@@ -949,8 +950,10 @@ class page_action extends tform_actions {
 		}
 		$app->tpl->setLoop('folder_directive_snippets', $folder_directive_snippets);
 		if(is_array($web_config[$server_id])) {
+			$app->tpl->setVar('is_spdy_enabled', ($web_config[$server_id]['enable_spdy'] === 'y'));
 			$app->tpl->setVar('is_pagespeed_enabled', ($web_config[$server_id]['nginx_enable_pagespeed']));
 		} else {
+			$app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y'));
 			$app->tpl->setVar('is_pagespeed_enabled', ($web_config['nginx_enable_pagespeed']));
 		}
 
@@ -1322,6 +1325,10 @@ class page_action extends tform_actions {
 				$app->tform->errorMessage .= $app->tform->lng("invalid_custom_php_ini_settings_txt").'<br>';
 			}
 		}
+
+		if($web_config['enable_spdy'] === 'n') {
+			unset($app->tform->formDef["tabs"]['ssl']['fields']['enable_spdy']);
+		}
 	//	if($this->dataRecord["directive_snippets_id"] < 1) $this->dataRecord["enable_pagespeed"] = 'n';
 
 		//print_r($_POST['folder_directive_snippets']);
diff --git a/server/conf/apache_apps.vhost.master b/server/conf/apache_apps.vhost.master
index fe73487fa0..94982a6dc1 100644
--- a/server/conf/apache_apps.vhost.master
+++ b/server/conf/apache_apps.vhost.master
@@ -14,11 +14,17 @@
   <FilesMatch "\.ph(p3?|tml)$">
     SetHandler None
   </FilesMatch>
-
+  
   <IfModule mod_headers.c>
 	RequestHeader unset Proxy early
   </IfModule>
 
+  {tmpl_if name="enable_spdy" op="==" value="y"}
+  <IfModule spdy_module>
+	SpdyEnabled on
+  </IfModule>
+  {/tmpl_if}
+
   <IfModule mod_php5.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     AddType application/x-httpd-php .php
@@ -33,7 +39,7 @@
 		</tmpl_if>
     </Directory>
   </IfModule>
-
+  
   <IfModule mod_php7.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     AddType application/x-httpd-php .php
@@ -48,7 +54,7 @@
 		</tmpl_if>
     </Directory>
   </IfModule>
-
+  
   <IfModule mod_fcgid.c>
     DocumentRoot {tmpl_var name='apps_vhost_dir'}
     SuexecUserGroup ispapps ispapps
@@ -79,3 +85,5 @@
 {/tmpl_if}
 
 </VirtualHost>
+
+
diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index ce245787a5..978139174f 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -12,7 +12,7 @@ server {
         listen [::]:<tmpl_var name='http_port'>;
 </tmpl_if>
 <tmpl_if name='ssl_enabled'>
-        listen <tmpl_var name='ip_address'>:<tmpl_var name='https_port'> ssl http2;
+        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='use_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;
@@ -22,19 +22,19 @@ server {
 		# 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;
 <tmpl_if name='ipv6_enabled'>
-        listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='https_port'> ssl http2;
+        listen [<tmpl_var name='ipv6_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>
 <tmpl_if name='ipv6_wildcard'>
-        listen [::]:<tmpl_var name='https_port'> ssl http2;
+        listen [::]:<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>
         ssl_certificate <tmpl_var name='ssl_crt_file'>;
         ssl_certificate_key <tmpl_var name='ssl_key_file'>;
 </tmpl_if>
-
+        
         server_name <tmpl_var name='domain'> <tmpl_var name='alias'>;
 
         root   <tmpl_var name='web_document_root_www'>;
-
+		
 <tmpl_if name='ssl_enabled'>
 <tmpl_if name='rewrite_to_https' op='==' value='y'>
         if ($scheme != "https") {
@@ -72,16 +72,16 @@ server {
         }
 </tmpl_if>
 </tmpl_loop>
-<tmpl_if name='use_proxy' op='!=' value='y'>
+<tmpl_if name='use_proxy' op='!=' value='y'>		
         index index.html index.htm index.php index.cgi index.pl index.xhtml;
-
-<tmpl_if name='ssi' op='==' value='y'>
+		
+<tmpl_if name='ssi' op='==' value='y'>		
         location ~ \.shtml$ {
             ssi on;
         }
 </tmpl_if>
 
-<tmpl_if name='errordocs'>
+<tmpl_if name='errordocs'>		
         error_page 400 /error/400.html;
         error_page 401 /error/401.html;
         error_page 403 /error/403.html;
@@ -124,7 +124,7 @@ server {
             internal;
         }
 </tmpl_if>
-
+		
 <tmpl_if name='logging' op='==' value='yes'>
         error_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/error.log;
         access_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/access.log combined;
@@ -149,7 +149,7 @@ server {
 			index index.html;
 			try_files $uri $uri/ =404;
         }
-
+		
         location = /favicon.ico {
             log_not_found off;
             access_log off;
@@ -162,7 +162,7 @@ server {
             log_not_found off;
             access_log off;
         }
-
+		
         location /stats/ {
             <tmpl_var name='web_document_root_www_proxy'>
             index index.html index.php;
@@ -325,13 +325,13 @@ server {
         location <tmpl_var name='htpasswd_location'> { ##merge##
                 auth_basic "Members Only";
                 auth_basic_user_file <tmpl_var name='htpasswd_path'>.htpasswd;
-
+				
                 location ~ \.php$ {
                     try_files <tmpl_var name='rnd_php_dummy_file'> @php;
                 }
         }
 </tmpl_loop>
-</tmpl_if>
+</tmpl_if>	
 }
 
 <tmpl_loop name="redirects">
@@ -340,7 +340,7 @@ server {
 <tmpl_if name='ipv6_enabled'>
         listen [<tmpl_var name='ipv6_address'>]:80;
 </tmpl_if>
-
+		
 <tmpl_if name='ssl_enabled'>
         listen <tmpl_var name='ip_address'>:443 ssl;
 <tmpl_if name='ipv6_enabled'>
@@ -349,7 +349,7 @@ server {
         ssl_certificate <tmpl_var name='ssl_crt_file'>;
         ssl_certificate_key <tmpl_var name='ssl_key_file'>;
 </tmpl_if>
-
+        
         server_name <tmpl_var name='rewrite_domain'>;
 
 <tmpl_if name='alias_seo_redirects2'>
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 1857499299..0612c13f7f 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -50,10 +50,12 @@
 		ServerAdmin webmaster@<tmpl_var name='domain'>
 
 <tmpl_if name='ssl_enabled'>
+<tmpl_if name='enable_http2' op='==' value='y'>
 		Protocols h2 http/1.1
 		SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
 		SSLCipherSuite 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS'
 </tmpl_if>
+</tmpl_if>
 
 <tmpl_if name='logging' op='==' value='anon'>
 		ErrorLog "|/usr/local/ispconfig/server/scripts/vlogger -e -n -P -t \"error.log\" /var/log/ispconfig/httpd/<tmpl_var name='domain'>"
@@ -385,7 +387,7 @@
                 Action php-fcgi /php-fcgi virtual
 				Alias /php-fcgi {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'}
 <tmpl_if name='use_tcp'>
-                FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization  -pass-header Content-Type
+                FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization  -pass-header Content-Type    
 </tmpl_if>
 <tmpl_if name='use_socket'>
                 FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -socket <tmpl_var name='fpm_socket'> -pass-header Authorization  -pass-header Content-Type
@@ -511,9 +513,9 @@
 		RewriteCond %{REQUEST_URI} !^/php-fcgi/
 		RewriteCond %{REQUEST_URI} !^<tmpl_var name='rewrite_target'>
 </tmpl_if>
-
+		
 		RewriteRule   ^/(.*)$ <tmpl_var name='rewrite_target'><tmpl_if name="rewrite_add_path" op="==" value="y">$1</tmpl_if>  <tmpl_var name='rewrite_type'>
-
+	
 </tmpl_loop>
 <tmpl_if name='ssl_enabled'>
 <tmpl_else>
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index b969882f2b..5f697d060e 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1235,6 +1235,17 @@ class apache2_plugin {
 		// Use separate bundle file only for apache versions < 2.4.8
 		if(@is_file($bundle_file) && version_compare($app->system->getapacheversion(true), '2.4.8', '<')) $vhost_data['has_bundle_cert'] = 1;
 
+		// HTTP/2.0 ?
+		$vhost_data['enable_http2']  = 'n';
+		if($vhost_data['enable_spdy'] == 'y'){
+			// check if apache supports http_v2
+			exec("2>&1 apachectl -M | grep http2_module", $tmp_output, $tmp_retval);
+			if($tmp_retval == 0){
+				$vhost_data['enable_http2']  = 'y';
+			}
+			unset($tmp_output, $tmp_retval);
+		}
+
 		// Set SEO Redirect
 		if($data['new']['seo_redirect'] != ''){
 			$vhost_data['seo_redirect_enabled'] = 1;
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index b57d38516e..89ac35734d 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -1517,6 +1517,18 @@ class nginx_plugin {
 			}
 		}
 
+		// http2 or spdy?
+		$vhost_data['enable_http2']  = 'n';
+		if($vhost_data['enable_spdy'] == 'y'){
+			// check if nginx support http_v2; if so, use that instead of spdy
+			exec("2>&1 nginx -V | tr -- - '\n' | grep http_v2_module", $tmp_output, $tmp_retval);
+			if($tmp_retval == 0){
+				$vhost_data['enable_http2']  = 'y';
+				$vhost_data['enable_spdy'] = 'n';
+			}
+			unset($tmp_output, $tmp_retval);
+		}
+
 		//proxy protocol settings
 		if($web_config['vhost_proxy_protocol_enabled'] == "y"){
 		    if((int)$web_config['vhost_proxy_protocol_https_port'] > 0) {
-- 
GitLab