-
-
Save chtombleson/8703899 to your computer and use it in GitHub Desktop.
| server { | |
| listen 80; | |
| server_name example.com; | |
| root /var/www/example.com; | |
| error_log /var/log/example.com/error.log; | |
| access_log /var/log/example.com/access.log; | |
| location / { | |
| try_files $uri @silverstripe; | |
| } | |
| location ~ ^/(index|install).php { | |
| fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; | |
| include fastcgi_params; | |
| fastcgi_pass unix:/var/run/php5-fpm.sock; | |
| } | |
| # whitelist php files that are called directly and need to be interpreted | |
| location = /framework/thirdparty/tinymce/tiny_mce_gzip.php { | |
| include fastcgi_params; | |
| fastcgi_pass unix:/var/run/php5-fpm.sock; | |
| } | |
| location = /framework/thirdparty/tinymce-spellchecker/rpc.php { | |
| include fastcgi_params; | |
| fastcgi_pass unix:/var/run/php5-fpm.sock; | |
| } | |
| location @silverstripe { | |
| expires off; | |
| include fastcgi_params; | |
| fastcgi_pass unix:/var/run/php5-fpm.sock; | |
| fastcgi_param SCRIPT_FILENAME $document_root/framework/main.php; | |
| fastcgi_param SCRIPT_NAME /framework/main.php; | |
| fastcgi_param QUERY_STRING url=$uri&$args; | |
| fastcgi_buffers 4 32k; | |
| fastcgi_busy_buffers_size 64k; | |
| } | |
| # | |
| # Error Pages | |
| # | |
| error_page 503 @maintenance; | |
| if (-f $document_root/maintenance.html ) { | |
| return 503; | |
| } | |
| location @maintenance { | |
| try_files /maintenance.html =503; | |
| } | |
| error_page 500 /assets/error-500.html; | |
| # | |
| # Deny access to protected folder/files | |
| # | |
| location ^~ /assets/ { | |
| try_files $uri =404; | |
| } | |
| location ^~ /silverstripe-cache/ { | |
| deny all; | |
| } | |
| location ^~ /vendor/ { | |
| deny all; | |
| } | |
| location ~ /composer\.(json|lock) { | |
| deny all; | |
| } | |
| location ~ /(\.|web\.config) { | |
| deny all; | |
| } | |
| location ~ \.(yml|bak|swp)$ { | |
| deny all; | |
| } | |
| location ~ ~$ { | |
| deny all; | |
| } | |
| location ~ \.(php|php[345]|phtml|inc)$ { | |
| deny all; | |
| } | |
| location ~ ^/(cms|framework)/silverstripe_version$ { | |
| deny all; | |
| } | |
| } |
hi Chris
I tried this config out whilst it is mostly working I run into an issue with editing pages. When I open /admin/pages and then click on any random page other than the current one the page does not load. I dont appear to be able to copy and paste the response but it is returning PHP code, not the result of execution of that code. I added X-Trace headers and can confirm that the request went through the @silverstripe section of the config.
Any ideas?
Cheers
Gordon
Oh it seems a lot of the AJAX is broken. At least that gives me a another avenue to investigate this issue :)
I've now resolved this issue thanks to simon_w on IRC. I had one PHP file which started with <? instead of <?php - I fixed this and lo and behold nginx working again :) As such disregard above query.
If your having problems with 502 bad gateway errors try these settings in the @silverstripe location block
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
proxy_connect_timeout 90;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_intercept_errors on;