Skip to content

Instantly share code, notes, and snippets.

@sbalay
Last active March 14, 2018 11:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbalay/099d368fcbdba299e0e37e12bd60ecc7 to your computer and use it in GitHub Desktop.
Save sbalay/099d368fcbdba299e0e37e12bd60ecc7 to your computer and use it in GitHub Desktop.
prerender nginx config
server {
listen 80;
root /home/yourusername/www/mysite;
location / {
try_files $uri @prerender;
}
location @prerender {
error_page 404 =200 /index.html;
set $prerender 0;
if ($http_user_agent ~* "googlebot|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($uri ~ "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff)") {
set $prerender 0;
}
#resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
resolver 8.8.8.8;
if ($prerender = 1) {
# prerender is running locally in port 3000
proxy_pass http://127.0.0.1:3000/http://127.0.0.1$request_uri;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment