From 928451ae888212c0c94b4360d8834b8770b9799b Mon Sep 17 00:00:00 2001 From: Tim Bracken Date: Tue, 16 Aug 2016 16:32:59 -0400 Subject: [PATCH] This is a better Drupal nginx config. Built from a combination of contributions from here: https://groups.drupal.org/node/305633 https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/ --- nginx/sites/framework-examples/drupal_8.conf | 56 +++++++++++++++----- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/nginx/sites/framework-examples/drupal_8.conf b/nginx/sites/framework-examples/drupal_8.conf index 30ec9588..a5d398a1 100644 --- a/nginx/sites/framework-examples/drupal_8.conf +++ b/nginx/sites/framework-examples/drupal_8.conf @@ -1,28 +1,56 @@ server { - listen 80; + listen 80; listen [::]:80; - server_name site_a.dev; - root /var/www/site_a; - index index.php; + #domain name + server_name drupal8.dev; + #file document root. This has to match one of the volumes in docer-composer.yml + root /var/www/drupal8; + + # This is the full path to your index file + index index.php index.html index.htm; + + + ## serve imagecache files directly or redirect to drupal if they do not exist. + location ~* files/styles { + access_log off; + expires 30d; + try_files $uri @drupal; + } + + ## serve imagecache files directly or redirect to drupal if they do not exist. + location ~* ^.+.(xsl|xml)$ { + access_log off; + expires 1d; + try_files $uri @drupal; + } + + ## Images and static content is treated different + location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { + access_log off; + expires 30d; + } location / { - try_files $uri $uri/ /index.php?q=$uri&$args; + index index.php; + # This is cool because no php is touched for static content + try_files $uri $uri/ @rewrite; + expires max; } - error_page 404 /404.html; - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /var/www/site_a; + location @drupal { + rewrite ^/(.*)$ /index.php?q=$1 last; } - location ~ [^/]\.php(/|$) { - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - if (!-f $document_root$fastcgi_script_name) { - return 404; - } + location @rewrite { + # Some modules enforce no slash (/) at the end of the URL + # Else this rewrite block wouldn't be needed (GlobalRedirect) + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ .php$ { fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;