Skip to content

Instantly share code, notes, and snippets.

@ernado
Created July 8, 2014 12:09
Show Gist options
  • Save ernado/382854323f0f3cf5ecbf to your computer and use it in GitHub Desktop.
Save ernado/382854323f0f3cf5ecbf to your computer and use it in GitHub Desktop.
upstream poputchiki {
server msk1.cydev.ru:3000;
keepalive 16;
}
upstream render {
server msk1.cydev.ru:9111;
keepalive 16;
}
server {
listen 80;
root /sites-enabled/poputchiki/poputchiki-frontend;
server_name poputchiki.cydev.ru;
client_max_body_size 4G;
access_log /log/poputchiki.access.log;
error_log /log/poputchiki.error.log;
location / {
try_files $uri @prerender;
}
location /api/ {
proxy_pass http://poputchiki;
}
location /api/realtime {
keepalive_timeout 0;
proxy_pass http://poputchiki;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location @prerender {
set $prerender 0;
if ($http_user_agent ~* "googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|developers\.google\.com") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_|prerender=1") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($prerender = 1) {
add_header X-Prerender $host$request_uri;
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://render;
}
if ($prerender = 0) {
rewrite .* /index.html break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment