WordPress derrière un reverse proxy
Codé un blog ça peut être rigolo mais réinventé la roue, ça me soûle rapidement, donc WordPress. Pourquoi? j’ai pas envie de me faire chier en fait, tout simplement. Et même quand j’essaie de resté simple, ya du caca qui me gicle dessus.
J’héberge @home, avec un serveur Proxmox et mes VM en LXC. Et une de mes VM me sert de reverse proxy. Tout mon trafic externe arrive dessus et elle redistribue sur les autres VM ce qui leur est adressé. J’ai donc une VM par service ce qui me facilite la vie pour mes sauvegardes et mes migrations, c’estle SSD qui stock mes VM qui fait la gueul par contre, mais ceci est une autre histoire.
Bon, ayant rien d’autre a foutre envi de partager certaines choses, je me lance dans la mise en place de ce tas de merde. Je fais une VM LXC avec un Ubuntu qui traînait par la et j’y installe le nécessaire, un Nginx, php-fpm et MariaDB suivi de la conf standard de reverse proxy sur la VM dédié à ça. Un fois le DNS mis en place, avec SSL et compagnie, je fais donc l’essai de l’URL blog.lacaveatonton.ovh et voila que l’installation de WordPress s’affiche mais sans le CSS qui va bien (c’est tout blanc et moche).
Bon, ça merdait au niveau reverse proxy, c’était pareil avec Peertube, Pleroma et compagnie. Du coup j’ai du me faire chier a jongler avec différentes options de Nginx ET bricoler la conf de WordPress qui me chiait littéralement à la gueule quand ça lui plaisait pas.
La conf du reverse proxy Nginx:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-Proto https;
Ensuite, la conf a ajouter à WordPress dans wp-config.php en début de fichier âpres avoir fait l’installation:
define(‘FORCE_SSL_ADMIN’, true);
if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false){
$_SERVER[‘HTTPS’] = ‘on’;
$_SERVER[‘SERVER_PORT’] = 443;
}
if (isset($_SERVER[‘HTTP_X_FORWARDED_HOST’])) {
$_SERVER[‘HTTP_HOST’] = $_SERVER[‘HTTP_X_FORWARDED_HOST’];
}
Et bien sur, modifier les URLs dans la config de WordPress (qui detect de base qu’une IP… pas compris). Après ça, on prie le seigneur pour que ça passe, j’ai du m’y reprendre a 3-4 fois…. Voila, bon chance