From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 05:02:35 -0400
Subject: [PATCH] Merge branch 'stable-3.1'

---
 server/conf/nginx_vhost.conf.master |  203 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 186 insertions(+), 17 deletions(-)

diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index 0a73ce9..f057088 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -1,13 +1,14 @@
 server {
-        listen <tmpl_var name='ip_address'>:80;
+        listen <tmpl_var name='ip_address'>:<tmpl_var name='http_port'>;
 <tmpl_if name='ipv6_enabled'>
-        listen [<tmpl_var name='ipv6_address'>]:80;
+        listen [<tmpl_var name='ipv6_address'>]:<tmpl_var name='http_port'>;
 </tmpl_if>
 		
 <tmpl_if name='ssl_enabled'>
-        listen <tmpl_var name='ip_address'>:443 ssl;
+        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};
+		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 <tmpl_if name='ipv6_enabled'>
-        listen [<tmpl_var name='ipv6_address'>]:443 ssl;
+        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>
         ssl_certificate <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt;
         ssl_certificate_key <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key;
@@ -18,18 +19,43 @@
         root   <tmpl_var name='web_document_root_www'>;
 		
 <tmpl_if name='seo_redirect_enabled'>
-        if ($http_host = "<tmpl_var name='seo_redirect_origin_domain'>") {
-            rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri permanent;
+        if ($http_host <tmpl_var name='seo_redirect_operator'> "<tmpl_var name='seo_redirect_origin_domain'>") {
+            rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri? permanent;
         }
 </tmpl_if>
-		
-<tmpl_loop name="redirects">		
-        if ($http_host ~* "<tmpl_var name='rewrite_domain'>$") {
-            #rewrite ^/(.+)$ <tmpl_var name='rewrite_target'>$1 <tmpl_var name='rewrite_type'>;
-            rewrite ^<tmpl_var name='rewrite_exclude'>/(.+)$ <tmpl_var name='rewrite_target'>$2 <tmpl_var name='rewrite_type'>;
+<tmpl_loop name="alias_seo_redirects">
+        if ($http_host <tmpl_var name='alias_seo_redirect_operator'> "<tmpl_var name='alias_seo_redirect_origin_domain'>") {
+            rewrite ^ $scheme://<tmpl_var name='alias_seo_redirect_target_domain'>$request_uri? permanent;
         }
 </tmpl_loop>
-		
+<tmpl_loop name="local_redirects">
+        if ($http_host <tmpl_var name='local_redirect_operator'> "<tmpl_var name='local_redirect_origin_domain'>") {
+            rewrite ^<tmpl_var name='local_redirect_exclude'>(.*)$ <tmpl_var name='local_redirect_target'>$2 <tmpl_var name='local_redirect_type'>;
+        }
+</tmpl_loop>
+<tmpl_if name='ssl_enabled'>
+<tmpl_if name='rewrite_to_https' op='==' value='y'>
+        if ($scheme != "https") {
+            rewrite ^ https://$http_host$request_uri? permanent;
+        }
+</tmpl_if>
+</tmpl_if>
+
+<tmpl_loop name="own_redirects">
+<tmpl_if name='use_rewrite'>
+        <tmpl_if name='exclude_own_hostname'>if ($http_host != "<tmpl_var name='exclude_own_hostname'>") { </tmpl_if>rewrite ^<tmpl_var name='rewrite_exclude'>(.*)$ <tmpl_var name='rewrite_target'>$2 <tmpl_var name='rewrite_type'>;<tmpl_if name='exclude_own_hostname'> }</tmpl_if>
+</tmpl_if>
+<tmpl_if name='use_proxy'>
+        location / {
+            proxy_pass <tmpl_var name='rewrite_target'>;
+            <tmpl_if name='rewrite_subdir'>rewrite ^/<tmpl_var name='rewrite_subdir'>(.*) /$1;</tmpl_if>
+<tmpl_loop name="proxy_directives">
+        <tmpl_var name='proxy_directive'>
+</tmpl_loop>
+        }
+</tmpl_if>
+</tmpl_loop>
+<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'>		
@@ -49,27 +75,35 @@
         error_page 503 /error/503.html;
         recursive_error_pages on;
         location = /error/400.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/401.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/403.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/404.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/405.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/500.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/502.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
         location = /error/503.html {
+            <tmpl_var name='web_document_root_www_proxy'>
             internal;
         }
 </tmpl_if>
@@ -78,7 +112,7 @@
         access_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/access.log combined;
 
         ## Disable .htaccess and other hidden files
-        location ~ /\. {
+        location ~ /\.(?!well-known/acme-challenge/) {
             deny all;
             access_log off;
             log_not_found off;
@@ -95,7 +129,8 @@
             access_log off;
         }
 		
-        location /stats {
+        location /stats/ {
+            <tmpl_var name='web_document_root_www_proxy'>
             index index.html index.php;
             auth_basic "Members Only";
             auth_basic_user_file <tmpl_var name='stats_auth_passwd_file'>;
@@ -121,13 +156,42 @@
 </tmpl_if>
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-            fastcgi_param PATH_INFO $fastcgi_script_name;
+            #fastcgi_param PATH_INFO $fastcgi_script_name;
             fastcgi_intercept_errors on;
         }
 </tmpl_else>
+	<tmpl_if name='php' op='==' value='hhvm'>
+			location @php {
+				try_files $uri =404;
+				include /etc/nginx/fastcgi_params;
+				fastcgi_pass unix:/var/run/hhvm/hhvm.<tmpl_var name='system_user'>.sock;
+				fastcgi_index index.php;
+				fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+				#fastcgi_param PATH_INFO $fastcgi_script_name;
+				fastcgi_intercept_errors on;
+				error_page 500 501 502 503 = @phpfallback;
+			}
+			
+			location @phpfallback {
+				try_files $uri =404;
+				include /etc/nginx/fastcgi_params;
+<tmpl_if name='use_tcp'>
+				fastcgi_pass 127.0.0.1:<tmpl_var name='fpm_port'>;
+</tmpl_if>
+<tmpl_if name='use_socket'>
+				fastcgi_pass unix:<tmpl_var name='fpm_socket'>;
+</tmpl_if>
+				fastcgi_index index.php;
+				fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+				#fastcgi_param PATH_INFO $fastcgi_script_name;
+				fastcgi_intercept_errors on;
+			}
+	</tmpl_else>
+
         location @php {
             deny all;
         }
+	</tmpl_if>
 </tmpl_if>
 		
 <tmpl_if name='cgi' op='==' value='y'>
@@ -143,9 +207,68 @@
         }
 </tmpl_if>
 
+<tmpl_loop name="rewrite_rules">
+        <tmpl_var name='rewrite_rule'>
+</tmpl_loop>
+
 <tmpl_loop name="nginx_directives">
         <tmpl_var name='nginx_directive'>
 </tmpl_loop>
+
+<tmpl_if name='enable_pagespeed' op='==' value='y'>
+        pagespeed on;
+        pagespeed FileCachePath /var/ngx_pagespeed_cache;
+        <tmpl_if name='ssl_enabled'>pagespeed FetchHttps enable,allow_self_signed;</tmpl_if>
+
+
+        # let's speed up PageSpeed by storing it in the super duper fast memcached
+        pagespeed MemcachedThreads 1;
+        pagespeed MemcachedServers "localhost:11211";
+
+        # Filter settings
+        pagespeed RewriteLevel CoreFilters;
+        pagespeed EnableFilters collapse_whitespace,remove_comments;
+
+        #  Ensure requests for pagespeed optimized resources go to the pagespeed
+        #  handler and no extraneous headers get set.
+        location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
+                add_header "" "";
+                access_log off;
+        }
+        location ~ "^/ngx_pagespeed_static/" {
+                access_log off;
+        }
+        location ~ "^/ngx_pagespeed_beacon$" {
+                access_log off;
+        }
+        location /ngx_pagespeed_statistics {
+                allow 127.0.0.1;
+                deny all;
+                access_log off;
+        }
+        location /ngx_pagespeed_global_statistics {
+                allow 127.0.0.1;
+                deny all;
+                access_log off;
+        }
+        location /ngx_pagespeed_message {
+                allow 127.0.0.1;
+                deny all;
+                access_log off;
+        }
+        location /pagespeed_console {
+                allow 127.0.0.1;
+                deny all;
+                access_log off;
+        }
+</tmpl_if>
+
+location ~ /\.well-known/acme-challenge/ {
+	   root /usr/local/ispconfig/interface/acme/;
+	   index index.html index.htm;
+	   try_files $uri =404;
+}
+
 
 <tmpl_loop name="basic_auth_locations">
         location <tmpl_var name='htpasswd_location'> { ##merge##
@@ -157,5 +280,51 @@
                 }
         }
 </tmpl_loop>
-	
-}
\ No newline at end of file
+</tmpl_if>	
+}
+
+<tmpl_loop name="redirects">
+server {
+        listen <tmpl_var name='ip_address'>:80;
+<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'>
+        listen [<tmpl_var name='ipv6_address'>]:443 ssl;
+</tmpl_if>
+        ssl_certificate <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt;
+        ssl_certificate_key <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key;
+</tmpl_if>
+        
+        server_name <tmpl_var name='rewrite_domain'>;
+
+location ~ /\.well-known/acme-challenge/ {
+	   root /usr/local/ispconfig/interface/acme/;
+	   index index.html index.htm;
+	   try_files $uri =404;
+}
+
+<tmpl_if name='alias_seo_redirects2'>
+<tmpl_loop name="alias_seo_redirects2">
+        if ($http_host <tmpl_var name='alias_seo_redirect_operator'> "<tmpl_var name='alias_seo_redirect_origin_domain'>") {
+            rewrite ^ $scheme://<tmpl_var name='alias_seo_redirect_target_domain'>$request_uri? permanent;
+        }
+</tmpl_loop>
+</tmpl_if>
+<tmpl_if name='use_rewrite'>
+        rewrite ^ <tmpl_var name='rewrite_target'>$request_uri? <tmpl_var name='rewrite_type'>;
+</tmpl_if>
+<tmpl_if name='use_proxy'>
+        location / {
+            proxy_pass <tmpl_var name='rewrite_target'>;
+            <tmpl_if name='rewrite_subdir'>rewrite ^/<tmpl_var name='rewrite_subdir'>(.*) /$1;</tmpl_if>
+<tmpl_loop name="proxy_directives">
+        <tmpl_var name='proxy_directive'>
+</tmpl_loop>
+        }
+</tmpl_if>
+}
+</tmpl_loop>

--
Gitblit v1.9.1