Nginx hébergement mutualisé wordpress

Ceci est un poste invité par écrit Austin W. Gunter, l'ambassadeur de la marque de la plate-forme d'hébergement géré WordPress WP Engine.

Le développement de WordPress a été étroitement liée à Apache depuis le début. WordPress a été construit pour être servi sur Apache. Récemment Nginx a pris de l'importance pour le trafic de 11,4 servir% de tout le trafic connu.

Automattic déplacé WordPress.com vers Nginx, et les hôtes gérés WordPress comme WP Engine et ZippyKid ont adopté la technologie. WordPress.com a déclaré publiquement qu'ils ont des milliers de serveurs au service des centaines de milliers de requêtes par seconde. Je passe la plupart de mes jours parler de la technologie de serveur compliqué, mais je ne l'avais pas trouvé une bonne ressource pour expliquer réellement, en termes de conversation, pourquoi Nginx est cool, pourquoi les gens utilisent, et ce que les compromis sont entre elle et Apache. Ce poste est destiné à expliquer ce que Nginx est à un niveau élevé, fournit pas un « comment » pour les gens qui peuvent vouloir l'installer eux-mêmes.

Nginx partagé hébergement C10K wordpress signifie en même temps

Tout d'abord, Nginx et Apache ne sont pas égaux, mais ce qui les rend différents? Ce qui rend Nginx adapté pour gérer les tâches d'hébergement Web haute performance - comme au service d'une attaque de requêtes simultanées lorsqu'un poste fait la première page HackerNews ou Reddit? Qu'est-ce que vous avez encore besoin Apache?

CK10 problème

Nginx a été développé en partie pour résoudre le problème C10K ou logiciel d'optimisation du serveur Web pour gérer un grand nombre de clients en même temps. C10K signifie simultanées dix mille connexions. Quand un blog frappe la première page HackerNews ou Reddit, des milliers de visiteurs peuvent arriver à votre site à la fois. Nginx est basé sur les événements, et est fantastique à répondre aux demandes simultanées.

Connexions simultanées

Nginx est conçu pour gérer des milliers de connexions simultanées avec une faible utilisation du processeur. Il est un serveur web dirigé par les événements non-bloquant, en utilisant un seul processus (ou un petit nombre de processus) pour gérer les connexions à l'aide de evented I / O. Apache a plusieurs modules multi-traitement ( « MPM »), mais pour la plupart des systèmes Linux, par défaut de Apache est le « prefork » MPM. Apache recommande d'utiliser le « travailleur » à moins que vous MPM en utilisant PHP - depuis PHP est pas thread-safe. Un morceau de code est thread-safe si elle ne manipule que des structures de données partagées d'une manière qui garantit une exécution en toute sécurité par plusieurs threads en même temps. conception basée sur l'événement de Nginx » permet de servir rapidement les données, et avec beaucoup de connexions simultanées, mais nous sacrifier la capacité d'Apache à traiter PHP

De plus, Apache est limité par le nombre de threads qu'il a CPU pour exécuter, et les processus Apache sont coûteux. A 50-300MB par processus, après des processus simultanés, par défaut est de 256, les performances d'Apache diminuera. Nginx, d'autre part, peut gérer les connexions simultanées en utilisant 10,000+ environ 2 Mo de mémoire, ne fraie de nouveaux threads ou processus. C'est absurdement évolutive.

hébergement

actifs statiques

Nginx est le roi de servir statics. Où Apache doit charger mod_php en mémoire pour servir une demande d'image, Nginx livrera comme des images, statics javascript, css, html, etc directement au navigateur avec son ultra-rapide d'E / S. Conceptuellement, Nginx transfère uniquement les données, le traitement jamais, ce qui est pourquoi il faut si peu de ressources pour fonctionner.

Alors, comment traduisez-nous WordPress PHP avec Nginx? Apache PHP avec faisceaux souvent ses processus, mais pour traiter PHP, Nginx doit être associé à un processus externe comme FastCGI, PHP-FPM ou HTTP. Cela peut se faire assez facilement. De plus, par des processus de séparation, nous pouvons voir plus des gains de vitesse avec Nginx. Il transmettra les demandes à traiter PHP externe et envoyer la réponse au navigateur.

En outre, ceux-ci peuvent être configurés pour traiter différentes requêtes sur différents serveurs. Ceci est un gros problème pour hébergeur ou sysadmin, car cela signifie qu'ils peuvent spécifier qui demande aller à quel serveur, ce qui réduit l'arriéré des demandes. Cela signifie également que les processus de serveur et d'application peuvent être redémarrés séparément.

Caching proxy

WordPress.com fait un usage intensif de la capacité de Nginx à proxy_cache. Vous pouvez programmer Nginx pour envoyer des requêtes au backend, mais sur le chemin du retour ont TENEZ la demande sur le disque pour « X secondes » afin que les prochaines demandes peuvent servir la page sans avoir à revenir à Apache pour chaque nouvel utilisateur.

3ème partie Modules

Avec Nginx gagne en importance, nous voyons les développeurs commencent à créer des modules frais que nous pouvons compiler en Nginx qui ajoutent des fonctionnalités que nous pourrions avoir besoin. Comme pour tout projet open-source, ces modules seront probablement une source importante d'innovation sur le serveur Web.

Ce sont d'énormes avantages. Mais il est important de noter que Nginx ne constitue pas une solution appropriée pour les solutions d'hébergement mutualisé, et il est certainement pas nécessaire pour les blogs WordPress tous les jours qui ne voient pas les niveaux élevés de trafic. Sous peu de circulation, les visiteurs peuvent ne pas remarquer une différence de vitesse entre Apache et Nginx. Vous voulez servir WordPress hors de Nginx si vous prévoyez de faire l'expérience un jour les pics de trafic, et que vous voulez garder votre site et les pages de chargement à sous 1,5 secondes. Sous le traitement à base d'événements de charge Nginx, la capacité de servir rapidement statics et les demandes de proxy_cache lui donner la capacité de servir des dizaines de milliers de connexions sur 2 Mo de CPU. Ce même trafic causerait Apache à commettre harakiri.

Parce que Nginx est si évolutive, Automattic, WordPress.com, et les hôtes gérés comme WordPress WP Engine ou ZippyKid ont adopté la technologie, le plus souvent avec Apache pour servir PHP, et utilisent pour fournir l'hébergement massivement évolutive pour des dizaines de milliers de domaines. Apache est toujours l'endroit pour traiter les demandes complexes, mais il ne peut pas suivre l'évolutivité de Nginx.

Qu'est-ce que votre site fonctionne sur? Avez-vous envisagé d'installer Nginx pour servir WordPress? Faites-moi savoir dans les commentaires ce que vous utilisez.

Switched à Nginx il y a quelques semaines après de plus en plus fatigué de recevoir des courriels de mon hôte disant que je serais allé sur mon allocation de RAM. heures passées à essayer de configurer mon site pour faire face au trafic lourd sur Apache mais aucune quantité de mise en cache tweaks .htaccess fait une différence. Switched à Nginx, a créé un .conf de base et ne l'ont pas regardé en arrière. l'utilisation RAM est sous contrôle et le site est plus réactif. Brillant.

Je suis passé à Nginx il y a un an. J'ai été très interessted dans le projet et ne pas aimé Lighttpd.
Il s'avère, Nginx est juste fantiastic, et est certainement le chemin à parcourir.
demandes de routage avec Apache me feeld un peu stupide de nos jours ...

Je vois. Voilà pourquoi il y a des sites (et en fait des tonnes), même si elles sont en cours d'exécution sur Apache, effectue encore mieux que ceux qui sont avec NGIX.
Oh, en passant, qu'en est-LiteSpeed? Tout commentaire de wordpress fonctionnant sur LiteSpeed? LiteSpeed ​​prétend qu'ils sont 6 fois plus rapide que Apache

Je ne pense pas Nginx fonctionne mieux que Apache, et non sur le site wordpress. PHP et Apache sont comme des frères et de nombreux scripts sont écrits avec Apache comme le premier serveur Web de choix, le seul problème est alors que Nginx est éclatement de la circulation « moderne » et gère très bien, Apache reste « ancien » et toujours la cible sur une performance globale. La question de l'éclatement de la circulation peut être manipulé avec l'équilibrage de charge. J'aime Apache à cause de ses performances toutes rondes. WordPress ne manque pas de dire avec assurance qu'ils ont rien contre Nginx, mais Apache reste toujours le premier choix - codex.wordpress.org/Nginx

Avez-vous exécutez une analyse comparative des performances pour voir si Nginx exécute en fait mieux ou pire dans votre environnement? Il est une chose de penser et le sentir, mais il est une autre chose de le tester.

Nous utilisons ici sur Nginx WPForce.com et il fonctionne très bien, beaucoup mieux que Apache jamais fait pour nous.

De même, à la fois WordPress.org et WordPress.com fonctionnent sur Nginx - WordPress.com étant la plus grande installation unique de WordPress sur Internet.

Donc, j'ai récemment migré d'un hôte à l'autre. hôte précédent avait mon site WP fonctionnant sur Apache. Quand je mis en place au nouvel hôte, la valeur par défaut a été rapide CGI (et nginx je présume) et n'a pas remarqué ou attention à la différence.

Tout fonctionnait bien, et rapide, sur les nouveaux vps, mais après quelques jours, je commence à rencontrer « 502 erreur mauvaise passerelle - nginx » erreurs. Il arrive quand je suis annonce un billet de blog, et cliquez sur « aperçu. » Je peux publier encore ce poste, mais quand je le fais, il y a beaucoup de morceaux de la page brisée (divers appels php, etc.), mais le poste est là et tact.

Je peux restaurer le site à un point précédent et qui résout le problème pour quelques postes (ou jour), puis le problème revient.

Je l'ai fait ajouter 3 nouveaux plugins lors de la migration (sécurité, AdRotate et super cache). Je l'ai essayé d'enlever la sécurité et de plugins AdRotate pour voir si c'est le problème, et le problème persiste. le seul que je ne l'ai pas retiré le cache est super.

des idées sur ce qui pourrait causer ces 502 erreurs mauvaises passerelle? Jamais eu ce lors de l'exécution sur apache.

Articles Liés

MAMP vivre serveur d'hébergement wordpressBonjour, j'ai commencé à avoir des problèmes récemment avec un site WordPress que je construit en utilisant MAMP, puis transféré à un serveur en direct. Je construit un site et de le lancer, il avait l'air bien, alors ...
Web d'hébergement pour australian wordpressSi vous voulez un site Web rapide et réactif, vous devez l'héberger aussi près que vous pouvez où vous êtes. Lors de l'affichage d'un site, vous faites des demandes et-vient du serveur, et plus loin ...
Auto hébergement vs plug-ins wordpresspar Tim Dorr / Flickr En ce qui concerne la création de votre site web de l'auteur, l'un des sujets plus confus est auto-hébergement: ce que cela signifie, pourquoi il est avantageux, et quand vous devriez le faire. Quelle...
Meilleur hébergement pour zoo Australie wordpressAujourd'hui, je veux jeter un oeil à combien des sociétés d'hébergement WordPress top à la hauteur de purement un point de vue de la performance. Maintenant, je serai le premier à admettre que d'avoir les serveurs les plus rapides ...
Skadate hébergement exigences pour wordpressPour exécuter WordPress, nous recommandons votre hôte prend en charge: C'est vraiment. Nous vous recommandons Apache ou Nginx comme serveur plus robuste et plus complet pour exécuter WordPress, mais tout serveur qui prend en charge PHP ...