Comprendre Nginx

EGPHP utilise Nginx (prononcé "engine-x") comme serveur web. Nginx est reconnu pour ses performances, sa stabilité et sa faible consommation de ressources. Contrairement à Apache, Nginx n'utilise pas de fichiers .htaccess.

Pas de .htaccess : Nginx ne prend pas en charge les fichiers .htaccess. Les mêmes fonctions s'obtiennent via les fichiers de configuration de Nginx.

Accéder aux réglages Nginx

  1. Connectez-vous à EGPNL
  2. Allez dans Domains
  3. Cliquez sur votre domaine
  4. Sélectionnez Nginx Config ou Advanced Settings

Configurations Nginx courantes

Rediriger HTTP vers HTTPS

Forcer tout le trafic à passer en HTTPS :

if ($scheme != "https") {
    return 301 https://$host$request_uri;
}

Rediriger www vers la version sans www

if ($host ~* ^www\.(.*)) {
    return 301 https://$1$request_uri;
}

Rediriger la version sans www vers www

if ($host !~* ^www\.) {
    return 301 https://www.$host$request_uri;
}

Permaliens propres pour WordPress

Nécessaire pour des URL WordPress optimisées pour le référencement :

location / {
    try_files $uri $uri/ /index.php?$args;
}
Utilisateurs WordPress : EGPNL configure automatiquement les permaliens WordPress dès que vous ajoutez un site WordPress. Aucune configuration manuelle n'est nécessaire !

En-têtes de sécurité

Ajoutez des en-têtes de sécurité pour protéger votre site :

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Configuration de la mise en cache

Activez la mise en cache navigateur pour les fichiers statiques :

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|woff|ttf)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}

Compression Gzip

Activez la compression gzip pour accélérer le chargement des pages (généralement active par défaut) :

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_min_length 1000;

Pages d'erreur personnalisées

Définissez des pages d'erreur personnalisées pour les codes 404 et 500 :

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

Bloquer l'accès

Bloquer certaines adresses IP

deny 123.45.67.89;
deny 98.76.54.0/24;

Bloquer certains fichiers

location ~ /\.(htaccess|htpasswd|git|svn) {
    deny all;
}

Protéger un répertoire par mot de passe

location /admin {
    auth_basic "Restricted";
    auth_basic_user_file /path/to/.htpasswd;
}

Réécriture d'URL

Réécrivez les URL sans rediriger :

# Rewrite old URL to new URL internally
rewrite ^/old-page$ /new-page last;

# Redirect old URL to new URL (301)
rewrite ^/old-url$ /new-url permanent;

Configuration de PHP

Ajustez les réglages PHP de votre domaine :

location ~ \.php$ {
    fastcgi_param PHP_VALUE "
        upload_max_filesize=64M
        post_max_size=64M
        max_execution_time=300
    ";
}
Prudence : une configuration Nginx incorrecte peut rendre votre site inaccessible. Sauvegardez toujours votre configuration actuelle avant toute modification.

Tester la configuration

Après vos modifications :

  1. EGPNL valide automatiquement votre configuration
  2. En cas d'erreur, un message d'avertissement s'affiche
  3. Corrigez toutes les erreurs avant d'enregistrer
  4. Nginx se recharge automatiquement après un enregistrement réussi