Last active
August 29, 2015 14:23
-
-
Save cawa87/d752f6a5bc7bf92b445a to your computer and use it in GitHub Desktop.
nginx microcache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
# Replace this port with the right one for your requirements | |
listen 80; #could also be 1.2.3.4:80 | |
#listen [::]:81 default_server; | |
# Multiple hostnames separated by spaces. Replace these as well. | |
server_name board.local; | |
root /home/cawa/www/board/public; | |
#error_page 404 errors/404.html; | |
#access_log logs/star.yourdomain.com.access.log; | |
index index.php; | |
location / { | |
try_files $uri $uri/ /index.php?$query_string; | |
} | |
location = /favicon.ico { access_log off; log_not_found off; } | |
location = /robots.txt { access_log off; log_not_found off; } | |
access_log off; | |
error_log /var/log/nginx/myapp-error.log error; | |
sendfile off; | |
client_max_body_size 100m; | |
location ~ \.php$ { | |
fastcgi_split_path_info ^(.+\.php)(/.+)$; | |
fastcgi_pass unix:/var/run/php5-fpm.sock; | |
fastcgi_index index.php; | |
include fastcgi_params; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
fastcgi_intercept_errors off; | |
fastcgi_buffer_size 16k; | |
fastcgi_buffers 4 16k; | |
# Setup var defaults | |
set $no_cache ""; | |
# If non GET/HEAD, don't cache & mark user as uncacheable for 1 second via cookie | |
if ($request_method !~ ^(GET|HEAD)$) { | |
set $no_cache "1"; | |
} | |
# Drop no cache cookie if need be | |
# (for some reason, add_header fails if included in prior if-block) | |
if ($no_cache = "1") { | |
add_header Set-Cookie "_mcnc=1; Max-Age=2; Path=/"; | |
add_header X-Microcachable "0"; | |
} | |
# Bypass cache if no-cache cookie is set | |
if ($http_cookie ~* "_mcnc") { | |
set $no_cache "1"; | |
} | |
# Bypass cache if flag is set | |
fastcgi_no_cache $no_cache; | |
fastcgi_cache_bypass $no_cache; | |
fastcgi_cache microcache; | |
fastcgi_cache_key $server_name|$request_uri; | |
fastcgi_cache_valid 404 30m; | |
fastcgi_cache_valid 200 10s; | |
fastcgi_max_temp_file_size 1M; | |
fastcgi_cache_use_stale updating; | |
fastcgi_pass_header Set-Cookie; | |
fastcgi_pass_header Cookie; | |
fastcgi_ignore_headers Cache-Control Expires Set-Cookie; | |
} | |
location ~ /\.ht { | |
deny all; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment