2 votes

nginx : contrôle des journaux d'accès tout en maintenant la redirection interne vers WordPress

J'ai créé une page WordPress avec un permalien http://domain.tld/health_status pour la surveillance de l'état de santé de WordPress. Il est consulté fréquemment, je ne veux donc pas que ces demandes apparaissent dans mon journal d'accès.

La "règle de réécriture" de base pour toutes les pages WordPress est la suivante :

location / {
    try_files $uri $uri/ /index.php?q=$args;
}

Maintenant, au même niveau, j'ai essayé

location /health_status {
    access_log off;
    #try_files $uri $uri/ /index.php?q=$args;
    }

Depuis le site de nginx documentation sur l'emplacement :

Les chaînes littérales correspondent au début de la requête, c'est-à-dire à l'élément le plus important. la plus spécifique sera utilisée

/health_status est plus spécifique que / Ce bloc prend donc des mesures lorsque je demande http://domain.tld/health_status .

Avec la try_files commentée (comme ci-dessus), la requête n'apparaît pas dans le journal des accès, bravo, mais j'obtiens évidemment une erreur 404, car nginx ne redirige pas cette requête vers WordPress.

Avec la try_files étant active, une redirection interne vers la page d'accueil de WordPress index.php a lieu et le /health_status La page WordPress s'affiche dans le navigateur. Cependant, après la redirection interne, la page location /health_status n'est plus en action et la demande se retrouve dans le journal des accès.

Comment résoudre ce problème proprement ? Dois-je maintenant ajouter un autre bloc correspondant à l'actuel /index.php?q=healthstatuswhatever qui a lieu après la redirection interne ?

Merci de votre attention !

1voto

Michael Hampton Points 232226

Vous devez utiliser un emplacement nommé pour les demandes destinées à WordPress. En voici un exemple :

location ~ \.php$ {
    try_files $uri =404;

    fastcgi_ ### fastcgi params and other config for PHP go here
}

location @wordpress {
    try_files $uri /index.php;

    fastcgi_ ### fastcgi params and other config for WP go here
}

location / {
    try_files $uri $uri/ @wordpress;
}

location /health_status {
    access_log off;
    try_files $uri $uri/ @wordpress;
}

Cet exemple est incomplet et peut ne pas être sûr ; il montre seulement comment votre problème peut être résolu. Veillez à sécuriser correctement votre serveur web.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X