Apache vs nginx : leurs différences et comment convertir la config

Apache vs nginx

Apache vs nginx : processus, .htaccess et conversion de config | We.Inc

Apache et nginx comparés sur la gestion des connexions, le .htaccess par dossier face à la config centrale, les rechargements et le proxy, avec un convertisseur pour les règles rewrite courantes.

Ce sont deux serveurs web open source éprouvés. Apache charge des modules dans un modèle de processus au choix (prefork, worker ou event) et laisse chaque dossier surcharger des réglages avec des fichiers .htaccess. nginx exécute un processus maître et quelques workers pilotés par événements, ne lit que sa config centrale, et se place souvent devant des serveurs d'application comme reverse proxy.

Apache et nginx côte à côte

Choisir entre les deux revient surtout à savoir où vit la configuration et qui a le droit de la modifier. Cette page laisse de côté les benchmarks, qui dépendent entièrement de la charge et des réglages, et se concentre sur les différences que vous rencontrez en faisant tourner un site : comment chaque serveur gère les connexions, pourquoi .htaccess existe, et comment se convertissent les règles rewrite que vous avez déjà. Utilisez le convertisseur pour voir la version nginx d'une règle Apache familière.

Questions fréquentes

nginx est-il plus rapide qu'Apache ?

Cela dépend de la tâche et des réglages, alors méfiez-vous de tout chiffre unique. Les workers événementiels de nginx sont conçus pour maintenir à moindre coût de nombreuses connexions inactives. Le MPM event d'Apache a réduit cet écart en utilisant lui aussi un polling thread-safe. Mesurez votre propre charge avant de changer pour la seule vitesse.

nginx prend-il en charge les fichiers .htaccess ?

Non. nginx n'a pas de fichiers de surcharge par dossier, donc les règles d'un .htaccess doivent être déplacées dans la configuration du serveur, puis nginx rechargé. C'est un compromis délibéré : aucune recherche de fichier à chaque requête, mais seules les personnes ayant accès à la config principale peuvent modifier les règles.

Puis-je convertir un .htaccess en nginx automatiquement ?

Les redirections et fallbacks simples se convertissent proprement, comme le montre le convertisseur de cette page. Les longues chaînes de RewriteCond avec des flags comme [P] ou des variables d'environnement doivent être relues par une personne, car nginx exprime la même intention avec d'autres briques.

Lequel choisir pour un site WordPress ou PHP ?

Si votre hébergeur ne vous donne qu'un accès aux fichiers, Apache avec .htaccess est ce qui vous permet tout simplement de modifier les règles. Sur un serveur que vous contrôlez, les deux fonctionnent avec PHP-FPM ; dans nginx, vous écrivez une seule fois le fallback des URL propres avec try_files dans le bloc server.

Comment recharger la config sans couper les connexions ?

Pour nginx, lancez nginx -s reload : le maître vérifie la nouvelle config, démarre de nouveaux workers et demande aux anciens de terminer proprement. Pour Apache, apachectl graceful fait l'équivalent pour ses processus enfants.

Les modèles de processus en termes simples

Pourquoi .htaccess compte

Le même site dans les deux serveurs

Virtual host Apache

Des fichiers statiques depuis un dossier plus un fallback SPA, configurés dans le vhost pour qu'aucun .htaccess ne soit nécessaire.

Bloc server nginx

Le même comportement : dossier racine, fallback try_files et page d'erreur personnalisée.

Forcer HTTPS

Apache teste le flag HTTPS ; nginx utilise un server séparé sur le port 80 qui ne fait que rediriger.

Envoyer le domaine nu vers www

La documentation de nginx recommande un bloc server dédié avec return plutôt qu'un if sur l'hôte.

Fallback pour application monopage

Servir les vrais fichiers quand ils existent et index.html pour tout autre chemin.

Rediriger une ancienne page

Redirect de mod_alias n'a pas besoin du moteur de réécriture ; nginx cible le chemin exact avec location =.

Page 404 personnalisée

Les deux renvoient l'erreur vers une page du même site.

Transmettre /api à un serveur d'application

Apache nécessite mod_proxy et mod_proxy_http chargés, avec des slashs finaux identiques sur les deux arguments ; le proxy de nginx est intégré.

Bloquer les fichiers cachés comme .git

Empêche de servir les fichiers dont le nom commence par un point.

Ajouter un en-tête de sécurité

Avec always, les deux serveurs ajoutent aussi l'en-tête aux réponses d'erreur, pas seulement aux réponses réussies.

Filtrer les tâches

https, proxy, 404...

Apache (.htaccess ou virtual host)

nginx (bloc server)

Aucune tâche ne correspond à ce filtre.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site