web-dev-qa-db-fra.com

4.9.5 site cassé derrière l’équilibreur de charge, envoi à localhost

J'ai 2 serveurs Web wordpress derrière un équilibreur de charge. Lors de la mise à jour de la version 4.9.4 à la version 4.9.5, ces sites sont tombés en panne s’ils étaient accessibles depuis le domaine principal (mais restent accessibles si j’utilise leurs adresses alternatives, ce qui n’est évidemment pas possible pour nos utilisateurs finaux). Au lieu de charger le site en accédant au domaine principal https://example.com, tous ceux qui accèdent au domaine sont dirigés vers https://localhost. Comme je l'ai dit, si quelqu'un accède à https://wp1.example.com ou https://wp2.example.com, les sites fonctionnent. Pour l'instant, je suis revenu à la version 4.9.4 qui résout le problème, mais j'aimerais trouver une solution à long terme. Aucune suggestion?

FYI dans mes fichiers wp-config, j’utilise ces directives:

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_Host']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_Host']);

UPDATE:Je pense avoir trouvé la raison ( https://core.trac.wordpress.org/changeset/42894 ), mais je n’ai toujours pas de solution réparable.

1
Stephen

grâce à @Pabamato, j'ai pu contourner ce problème et passer à la version 4.9.5 en modifiant les directives de wp-config en:

define('WP_SITEURL', 'https://' . $_SERVER['SERVER_NAME']);
define('WP_HOME', 'https://' . $_SERVER['SERVER_NAME']);

Et également en ajoutant un paramètre à ma conf nginx pour prendre en compte correctement les noms de serveur variables:

fastcgi_param SERVER_NAME $Host;

sans les deux éléments ci-dessus, ma configuration particulière ne fonctionnerait pas correctement.

UPDATE: parlait trop tôt, toutes sortes de pages mal formatées si vous vous connectez à l'équilibreur de charge, malgré le fixateur de contenu SSL non sécurisé. Rétabli à 4.9.4 et annule les modifications et le problème a disparu. toujours à la recherche d'une solution complète ...

UPDATE 2 : Je pense avoir enfin isolé mes derniers problèmes du fait qu’ils étaient liés à des problèmes de permalien. Effacer tout cela semble maintenant fonctionner (du moins dans mon environnement de test), je vais donc le marquer comme la solution après tout.

UPDATE 3 : Je me suis trompé, la suppression des permaliens ne fonctionnait pas, cela semblait être le cas sur mon site de test (test.example.com) où cela fonctionnait car tous les sous-domaines fonctionnent (test.example. com, www.example.com, etc) alors que le domaine principal NE fonctionnerait pas, peu importe ce que j'ai fait. Donc, forcer mon site à toujours utiliser le sous-domaine www fonctionne, mais c'est nul et je ne sais pas pourquoi encore. Quoi qu'il en soit, voici mon nouveau code pour wp-config qui fonctionne:

if($_SERVER['HTTP_Host'] == 'wp1.example.com') {
    define('WP_SITEURL', 'https://wp1.example.com');
    define('WP_HOME', 'https://wp1.example.com');
  } else {
    define('WP_SITEURL', 'https://www.example.com');
    define('WP_HOME', 'https://www.example.com');
  }
1
Stephen