web-dev-qa-db-fra.com

Utilisation de Wordpress avec Apache derrière un proxy inverse nginx

J'espère que vous pourrez m'aider à résoudre mon problème.

J'exécute ngninx sur un serveur dédié en tant que proxy inverse. Mon application WordPress se trouve sur une autre machine virtuelle exécutant Apache2 en tant que Websever. Tout fonctionne bien jusqu'à ce que j'utilise des "permaliens" dans WordPress. Je reçois:

"L'URL demandée/contact-us/n'a pas été trouvée sur ce serveur."

Voici ma config sur nginx:

server {
        listen          443;
        ssl         on;
        server_name     foo.com;


        access_log  /var/log/nginx/foo.access.log;
        error_log   /var/log/nginx/foo.error.log;


        ssl_certificate           /etc/nginx/ssl-certificates/foo.de.crt;
        ssl_certificate_key       /etc/nginx/ssl-certificates/foo.de.key;


        ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        keepalive_timeout    60;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;

        location / {
            proxy_pass  https://111.111.111.111;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_set_header        Host            $Host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }

}
server {
    listen      80;
    server_name     foo.com;

    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^/.*$ https://$Host$request_uri? permanent;
}

Je ne sais pas pourquoi je ne peux pas utiliser les permaliens. Quelqu'un face au même problème?

Merci d'avance!

3
allinformatix

Vous manquez vos règles de réécriture Wordpress.

C'est probablement déroutant parce que, dans Apache, Wordpresss génère automatiquement les règles de réécriture dans .htaccess. Il ne fait pas la même chose dans les environnements nginx.

Portez une attention particulière à la documentation Wordpress sur nginx et aux directives de configuration faisant référence aux règles de réécriture HTTP, aux directives "includes" pour la configuration de la segmentation et aux règles spécifiques de réécriture Wordpress devant être présentes pour que de jolis permaliens fonctionnent correctement.

Sans en savoir beaucoup sur votre système d'exploitation, votre site/réseau ou votre configuration, j'hésite à copier-coller du code sans contexte. Cette section de la documentation est assez complète et devrait fournir ce que vous recherchez.

1
Jon