Prerender.io Конфигурация Nginx с SSL для приложения angularjs

Привет всем, я пробовал различные конфигурации для Nginx с prerender.io, но это, кажется, не работает. Ниже вы найдете код, который я использовал, любая помощь будет приветствоваться.

Это конфигурация, которую я вставил в (сайт-включенную) часть, и она работала хорошо без предварительной настройки.

Я полагаю, что проблема исходит от местоположения, а также prerender не принимая во внимание протокол SSl.

Заранее спасибо.

 server {
listen 443;
listen [::]:443 ssl;
server_name www.test.com test.com;
server_tokens off;
if ($host = 'test.com') {
return 301 https://www.test.com$request_uri;
}

ssl on;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:30m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE 
 ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-
 SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-
 AES256-GCM-SHA384';

ssl_stapling on;
ssl_stapling_verify on;

root /home/test/test/public;
index  index.html;


location / {
try_files $uri @prerender;
 }

location /prerender {
proxy_set_header X-Prerender-Token key;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" 
always;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
server_tokens off;


location @prerender {
  #proxy_set_header X-Prerender-Token key;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" 
  always;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header Host $host;
  server_tokens off;

  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)") {
  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) {

#setting prerender as a variable forces DNS resolution since nginx 
caches IPs and doesnt play well with load balancing
set $prerender "service.prerender.io";
rewrite .* /https://$host$request_uri? break;
proxy_pass http://$prerender;
}
if ($prerender = 0) {
rewrite .* /index.html break;
}
}

}

            server {
      listen  80;
    listen [::]:80;
 server_name    www.test.com test.com;
 return  301 https://www.test.com$request_uri;
  }

0 ответов

Другие вопросы по тегам