-
-
Save phambanhan/83f82c7951b2b49c6fd4a7bca3b47f43 to your computer and use it in GitHub Desktop.
Prerender.io, nginx & meteor;
This file contains hidden or 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
| # Change YOUR_TOKEN to your prerender token and uncomment that line if you want to cache urls and view crawl stats | |
| # Change example.com (server_name) to your website url | |
| # Change /path/to/your/root to the correct value | |
| server { | |
| listen 80; | |
| listen [::]:80; | |
| server_name example.com; | |
| root /path/to/your/root; | |
| index index.html; | |
| location ~ /\. { | |
| deny all; | |
| } | |
| location / { | |
| try_files $uri @prerender; | |
| } | |
| location @prerender { | |
| #proxy_set_header X-Prerender-Token YOUR_TOKEN; | |
| set $prerender 0; | |
| if ($http_user_agent ~* "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|svg|eot)") { | |
| 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) { | |
| rewrite .* /$scheme://example.com$request_uri? break; | |
| proxy_pass http://service.prerender.io; | |
| } | |
| if ($prerender = 0) { | |
| set $proxy_host $host; | |
| } | |
| proxy_http_version 1.1; | |
| proxy_set_header Upgrade $http_upgrade; | |
| proxy_set_header Connection "upgrade"; | |
| proxy_set_header Host $proxy_host; | |
| if ($prerender = 0) { | |
| proxy_pass http://localhost:3000; | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment