From 02ce406a6352a6b7cdc0fbf47530c18d6037004a Mon Sep 17 00:00:00 2001
From: pierreozoux <pierre@ozoux.net>
Date: Fri, 25 Nov 2016 15:25:29 +0000
Subject: [PATCH] updates to nc

---
 nginx.conf | 105 ++++++++++++++++++++++++++++++-----------------------
 1 file changed, 60 insertions(+), 45 deletions(-)

diff --git a/nginx.conf b/nginx.conf
index 1dcd3b1..af3331e 100644
--- a/nginx.conf
+++ b/nginx.conf
@@ -15,7 +15,6 @@ http {
     listen 80;
     
     # Add headers to serve security related headers
-    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
     add_header X-Content-Type-Options nosniff;
     add_header X-Frame-Options "SAMEORIGIN";
     add_header X-XSS-Protection "1; mode=block";
@@ -24,7 +23,21 @@ http {
     add_header X-Permitted-Cross-Domain-Policies none;
 
     root /var/www/html;
-    client_max_body_size 10G; # 0=unlimited - set max upload size
+
+    location = /robots.txt {
+      allow all;
+      log_not_found off;
+      access_log off;
+    }
+
+    location = /.well-known/carddav {
+      return 301 $scheme://$host/remote.php/dav;
+    }
+    location = /.well-known/caldav {
+      return 301 $scheme://$host/remote.php/dav;
+    }
+
+    client_max_body_size 1G;
     fastcgi_buffers 64 4K;
 
     gzip off;
@@ -32,60 +45,62 @@ http {
     index index.php;
     error_page 403 /core/templates/403.php;
     error_page 404 /core/templates/404.php;
-
-    rewrite ^/.well-known/carddav /remote.php/dav/ permanent;
-    rewrite ^/.well-known/caldav /remote.php/dav/ permanent;
  
-    location = /robots.txt {
-      allow all;
-      log_not_found off;
-      access_log off;
-    }
-      
-    location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
-      deny all;
+    location / {
+        rewrite ^ /index.php$uri;
     }
 
+    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
+        deny all;
+    }
     location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
-      deny all;
+        deny all;
     }
-  
-    location / {
-      rewrite ^/remote/(.*) /remote.php last;
-      rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
-      try_files $uri $uri/ =404;
+
+    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
+        include fastcgi_params;
+        fastcgi_split_path_info ^(.+\.php)(/.*)$;
+        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+        fastcgi_param PATH_INFO $fastcgi_path_info;
+        fastcgi_param HTTPS on;
+        #Avoid sending the security headers twice
+        fastcgi_param modHeadersAvailable true;
+        fastcgi_param front_controller_active true;
+        fastcgi_pass backend;
+        fastcgi_intercept_errors on;
+        fastcgi_request_buffering off;
     }
-  
-    location ~ \.php(?:$|/) {
-      fastcgi_split_path_info ^(.+\.php)(/.+)$;
-      include fastcgi_params;
-      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-      fastcgi_param PATH_INFO $fastcgi_path_info;
-      fastcgi_param HTTPS on;
-      fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
-      fastcgi_pass backend;
-      fastcgi_intercept_errors on;
+
+    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
+        try_files $uri/ =404;
+        index index.php;
     }
 
     # Adding the cache control header for js and css files
-    # Make sure it is BELOW the location ~ \.php(?:$|/) { block
+    # Make sure it is BELOW the PHP block
     location ~* \.(?:css|js)$ {
-      add_header Cache-Control "public, max-age=7200";
-      # Add headers to serve security related headers
-      add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
-      add_header X-Content-Type-Options nosniff;
-      add_header X-Frame-Options "SAMEORIGIN";
-      add_header X-XSS-Protection "1; mode=block";
-      add_header X-Robots-Tag none;
-      add_header X-Download-Options noopen;
-      add_header X-Permitted-Cross-Domain-Policies none;
-      # Optional: Don't log access to assets
-      access_log off;
+        try_files $uri /index.php$uri$is_args$args;
+        add_header Cache-Control "public, max-age=7200";
+        # Add headers to serve security related headers (It is intended to
+        # have those duplicated to the ones above)
+        # Before enabling Strict-Transport-Security headers please read into
+        # this topic first.
+        # add_header Strict-Transport-Security "max-age=15768000;
+        #  includeSubDomains; preload;";
+        add_header X-Content-Type-Options nosniff;
+        add_header X-Frame-Options "SAMEORIGIN";
+        add_header X-XSS-Protection "1; mode=block";
+        add_header X-Robots-Tag none;
+        add_header X-Download-Options noopen;
+        add_header X-Permitted-Cross-Domain-Policies none;
+        # Optional: Don't log access to assets
+        access_log off;
     }
 
-    # Optional: Don't log access to other assets
-    location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
-      access_log off;
-    }  
+    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
+        try_files $uri /index.php$uri$is_args$args;
+        # Optional: Don't log access to other assets
+        access_log off;
+    }
   }
 }
-- 
GitLab