Skip to content

Instantly share code, notes, and snippets.

@renatocron
Created December 22, 2015 02:01
Show Gist options
  • Save renatocron/7297ccd3dea06f08db8a to your computer and use it in GitHub Desktop.
Save renatocron/7297ccd3dea06f08db8a to your computer and use it in GitHub Desktop.
location / {
# 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
proxy_no_cache $no_cache;
proxy_cache_bypass $no_cache;
# Point nginx to the real app/web server
# Set cache zone
#proxy_cache microcache;
#proxy_cache_lock on;
# Set cache key to include identifying components
proxy_cache_key $scheme$host$request_method$request_uri;
# Only cache valid HTTP 200 responses for 1 second
#proxy_cache_valid 200 4s;
# Serve from cache if currently refreshing
#proxy_cache_use_stale updating;
# Send appropriate headers through
# Set files larger than 1M to stream rather than cache
proxy_max_temp_file_size 1M;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8105;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment