search
top

Sécuriser la configuration Nginx pour WordPress

Configuration de base pour le CMS WordPress

server {
    listen      192.168.1.1:80 default_server;
    server_name  _;
  • listen: Configuration pour le vhost par defaut (les acces a des server_name inconu par Nginx arriveront dans ce vhost)
  • server_name: _ indique le vhost par defaut, mettez vos ou votre server_name si vous voulez pas faire un vhost par defaut.
    root        /var/www/domaine.ltd/www;
    index       index.php;

N’oublier pas de modifier le « root »

    location = /favicon.ico     {   allow all;  log_not_found off;  access_log off; }
    location = /robots.txt      {   allow all;  log_not_found off;  access_log off; }

On desactive les log et on ne log pas les not found pour ces deux fichiers

    location ~ /\.              {   deny all;   log_not_found off;  access_log off; }
    location ~ wp-config.php    {   deny all;   log_not_found off;  access_log off; }

bloque l’acces aux fichiers commencant par un point et au fichier de conf (non negociable ! :) )

    location ~ ^/wp-content {
        deny all;
        location ~ .(xml|css|jpe?g|png|gif|js)$ {
            allow all;
        }
    }

Autorise l’acces uniquement aux extensions correspondant a la regex dans l’integralitée du dossier wp-content, si vous voulez laisser vos psd et autre fichiers source, ils sont protegé.

    location / {
        if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php?q=$1 last;
        }
    }

Renvoie tous sur l’index, cela permet d’utiliser le format d’url de votre choix.

    location ~ \.php$ {
        fastcgi_pass   php5;
        fastcgi_index  index.php;
        include fastcgi_params;
        fastcgi_ignore_client_abort     off;
    }

cette partie permet d’executer le php, a adapter suivant votre configuration

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
    }

Cela permet de mettre en caches les fichiers static.

}

Réduire le nombre de requête MySQL de WordPress

WordPress sans cache, va générer les pages a chaque demande, cela génère donc du temps de « compilation » php, des requêtes MySQL.
Cela peux si vous avez beaucoup de pages, saturer votre serveur lors d’un pique de visite et/ou lorsqu’un moteur vous index.

Pour cela, installer simplement le plugin wp-cache et activez le.

Dans le fichier de configuration wp-config.php vous devez aussi spécifier :

define('WP_CACHE', true);

Pour activer le cache de WordPress

Thème wiki

Cela faisait un moment que je n’avais pas changer le thème du wiki, et bien c’est chose faite (L’ancien est tombé a l’abandon, plus personne ne s’en occupe).

top