Prendender ne fonctionne pas sur https avec Nginx

J’ai du mal à inclure le pré-expéditeur dans mon application s’exécutant sur Nginx, j’ai défini une règle simple pour réécrire toutes les requêtes http en https. Cependant, https s’exécute sur un certificate GoDaddy, le cache est mis en cache mais le contenu est vide. Je l’ai testé sur http et cela fonctionne bien, ce que j’essaie maintenant, c’est que si mon http_user_agent est Prerender, je veux garder l’URL http intacte et sinon, réécrire l’URL en https.

Toute aide / commentaires / suggestions sont les bienvenus.

Je viens d’avoir le même problème avec le prérender qui gère les redirections https. Dans notre cas, la solution rapide consistait à forcer le protocole https dans la configuration du nœud pré-générateur (je suppose qu’une telle option devrait exister pour tout autre logiciel intermédiaire).

 var prerender = require('prerender-node'); prerender.protocol = 'https'; 

Mais après tout, cela semble être dû à une mauvaise configuration de nginx, qui ne passe pas l’en tête x-forwarded-proto , car sinon, il devrait être automatiquement géré par le middleware https://github.com/prerender/prerender-node/blob/master /index.js#L235-L237

Vous pouvez faire une simple règle de réécriture pour tout le monde sauf le Prerender.

 set $prerender 0; if ($http_user_agent ~* "prerender") { set $prerender 1; } if ($prerender = 0) { return 301 https://$host$request_uri; }