Nginx compartilhada wordpress hospedagem
Este é um hóspede post escrito Austin W. Gunter, o embaixador da marca de gestão plataforma de hospedagem WordPress do WP Engine.
desenvolvimento das WordPress foi entrelaçada com Apache desde o início. WordPress foi construído para ser servido no Apache. Recentemente Nginx ganhou proeminência a servir o tráfego de 11,4% de todo o tráfego conhecido.
Automattic mudou WordPress.com até Nginx, e conseguiu anfitriões WordPress como WP Engine e ZippyKid adotaram a tecnologia também. WordPress.com declarou publicamente que eles têm milhares de servidores que servem centenas de milhares de pedidos por segundo. Passo a maior parte dos meus dias falando sobre a tecnologia de servidor complicado, mas eu não tinha encontrado um bom recurso para realmente explicar, em termos de conversação, por Nginx é legal, por que as pessoas estão usando-o, e que as compensações estão entre ele e Apache. Este post é destinado a explicar o que Nginx está em um nível elevado, não fornecem um “como fazer” para as pessoas que podem querer instalar-se.
Primeiro, Nginx e Apache não são iguais, mas o que os torna diferentes? O que faz Nginx adequado para lidar com alta performance web tarefas de hospedagem - como servir um ataque de solicitações simultâneas quando um post faz a primeira página do HackerNews ou Reddit? O que você ainda precisa Apache para?
CK10 Problem
Nginx foi desenvolvido, em parte, para resolver o problema C10k, ou otimização de software de servidor web para lidar com um grande número de clientes ao mesmo tempo. C10k significa simultâneos dez mil ligações. Quando um post atinge a primeira página do HackerNews ou Reddit, milhares de visitantes pode chegar a seu site ao mesmo tempo. Nginx é baseado em eventos, e é fantástico em responder às solicitações simultâneas.
conexões simultâneas
Nginx é projetado para lidar com milhares de conexões simultâneas com baixo uso da CPU. É um não-bloqueio servidor web controlado por eventos, usando um único processo (ou um pequeno número de processos) para tratar as conexões que utilizam evented de I / O. Apache tem vários módulos multi-processamento ( “MPM”), mas para a maioria dos sistemas Linux, padrão do Apache é o “prefork” MPM. Apache recomenda o uso do “trabalhador” MPM a menos que você estiver usando PHP - desde o PHP não é thread-safe. Um pedaço de código é thread-safe se ele só manipula estruturas de dados compartilhados de uma forma que garante a execução segura por múltiplos threads ao mesmo tempo. evento baseado”do Nginx projeto permite-lo para servir de dados rapidamente, e com muitas conexões simultâneas, mas nós sacrificar a capacidade do Apache para processar PHP
Além disso, o Apache é limitado por quantos threads tem CPU para executar, e Apache processos são caros. No 50-300MB por processo, após o de processos simultâneos, o padrão é 256, o desempenho do Apache irá diminuir. Nginx, por outro lado, pode lidar com mais de 10.000 conexões simultâneas usando cerca de 2MB de memória, não gerando novos segmentos ou processos. Isso é absurdamente escalável.
Ativos estáticos
Nginx é o rei de servir estática. Onde Apache tem que carregar mod_php na memória para atender a uma solicitação de imagem, Nginx irá entregar estática, como imagens, JavaScript, CSS, HTML, etc diretamente para o navegador com a sua super rápido I / O. Conceitualmente, Nginx apenas transfere dados, nunca processá-lo, razão pela qual requer tão poucos recursos para executar.
Então, como podemos traduzir WordPress PHP com Nginx? Apache frequentemente pacotes PHP com seus processos, mas para processar PHP, Nginx precisa ser emparelhado com um processo externo como FastCGI, PHP-FPM, ou HTTP. Isso pode ser feito com bastante facilidade. Além do mais, por processos de separação que pode realmente ver mais ganhos de velocidade com Nginx. Ele vai encaminhar solicitações para processar PHP externamente, e enviar a resposta de volta para o navegador.
Além disso, estes podem ser configurado para processar os pedidos diferentes com vários servidores. Este é um grande negócio para host ou sysadmin, porque isso significa que eles podem especificar quais solicitações ir para qual servidor, reduzindo pedido backlog. Isso também significa que os processos de servidores e aplicativos pode ser reiniciado separadamente.
Caching Proxy
WordPress.com faz uso intenso da capacidade do Nginx para proxy_cache. Pode programar Nginx para enviar solicitações para o servidor, mas no caminho de volta a tê-lo segurar o pedido em disco para “X segundos” para que as próximas solicitações podem servir a página sem ter que voltar para Apache para cada novo usuário.
Módulos Parte 3
Com Nginx ganhando destaque, estamos vendo os desenvolvedores começam a criar módulos legais que podem compilar em Nginx que adicionam funcionalidades que talvez seja necessário. Como em qualquer projeto de código aberto, estes módulos será provavelmente uma importante fonte de inovação no servidor web.
Essas são algumas vantagens enormes. Mas é importante notar que Nginx não é uma solução adequada para soluções de hospedagem compartilhada, e certamente não é necessário para blogs WordPress diárias que não vêem elevados níveis de tráfego. Sob tráfego mínimo, os visitantes podem não notar qualquer diferença de velocidade entre Apache e Nginx. Você quer servir WordPress fora de Nginx se você esperar para experimentar um dia picos de tráfego, e quer manter o seu site e páginas de carregamento na sub 1,5 segundo. Sob processamento baseado em evento de carregamento do Nginx, capacidade de servir estática rapidamente, e os pedidos proxy_cache dar-lhe a capacidade de servir dezenas de milhares de conexões em 2MB de CPU. Isso mesmo tráfego causaria Apache para cometer harakiri.
Porque Nginx é tão escalável, Automattic, WordPress.com, e anfitriões WordPress gerido como WP Engine ou ZippyKid adotaram a tecnologia, normalmente junto com o Apache para servir PHP, e estão usando-o para fornecer hospedagem massivamente escalável para dezenas de milhares de domínios. Apache ainda é o lugar para processar pedidos complexos, mas não pode manter-se com a escalabilidade do Nginx.
Qual é o seu site em execução no? Você já pensou em instalar Nginx para servir WordPress? Deixe-me saber nos comentários o que você está usando.
Comutada para Nginx há algumas semanas depois de crescer cansado de receber e-mails do meu host dizendo que eu tinha ido sobre a minha alocação de RAM. Passado horas tentando configurar meu site para lidar com o tráfego pesado no Apache, mas nenhuma quantidade de cache tweaks .htaccess fez a diferença. Comutada para Nginx, criou um .conf básico e não olhou para trás. uso de RAM está sob controle e o site é mais ágil. Brilhante.
Mudei para Nginx um ano atrás. Eu estava muito interessted no projeto e não gostou Lighttpd.
Acontece que, Nginx é apenas fantiastic, e é definitivamente o caminho a percorrer.
pedidos de roteamento com Apache Feeld um bocado estúpido para mim hoje em dia ...
Entendo. É por isso que existem alguns sites (na verdade toneladas deles) mesmo que estejam em execução no Apache, ainda tem um desempenho melhor do que aqueles que estão com NGIX.
Oh, a propósito, que sobre LiteSpeed? Qualquer comentário de wordpress em execução no LiteSpeed? LiteSpeed afirma que eles são 6x mais rápido do Apache
Eu não acho que Nginx desempenho melhor do que o Apache, e não no website wordpress. PHP e Apache são como irmãos e muitos scripts são escritos com o Apache como o primeiro servidor web escolha, o único problema é quando Nginx é ‘moderno’ e lida com explosão de tráfego muito bem, Apache continua a ser ‘antigo’ e sempre alvo em todo o desempenho rodada. A questão da explosão de tráfego podem ser tratados com balanceamento de carga. Eu gosto Apache porque ele é de todos os desempenhos redondas. O WordPress não deixar de dizer abertamente que eles não têm nada contra o Nginx mas Apache continua a ser a primeira escolha - codex.wordpress.org/Nginx
Você executar qualquer avaliação comparativa de desempenho para ver se Nginx realmente executa melhor ou pior em seu ambiente? É uma coisa para pensar e sentir, mas é outra coisa para testá-lo.
Usamos Nginx aqui na WPForce.com e funciona muito bem, muito melhor do Apache já fez por nós.
Da mesma forma, tanto WordPress.org e WordPress.com executado em Nginx - WordPress.com sendo o maior única instalação do WordPress na Internet.
Então eu recentemente migrado de um hospedeiro para outro. hospedeiro anterior tinha meu WP site funcionando no Apache. Quando eu configurar no novo hospedeiro, o padrão foi Fast-CGI (e nginx presumo) e não notou ou prestar atenção à diferença.
Tudo estava correndo bem, e rápido, sobre as novas VPS, mas depois de alguns dias, comecei a encontrar “502 mau erro de gateway - nginx” erros. Isso acontece quando estou postando um post de blog, e clique em “visualização.” Eu ainda pode publicar esse post, mas quando eu faço há muitos pedaços da página quebrado (várias chamadas php, etc.) mas o post está lá e no tato.
I pode restaurar o site de volta para um ponto anterior e que corrige o problema por algumas mensagens (ou dia), e depois o problema retorna.
Fiz adicionar 3 novos plugins ao migrar (segurança, AdRotate e super cache). Eu tentei remover os plugins de segurança e AdRotate para ver se esse é o problema, eo problema persiste. o único que eu não tenha removido é super cache.
algumas ideias sobre o que poderia estar causando esses 502 erros de gateway maus? Nunca tive isso quando em execução no apache.