joaopaulo Posted December 22, 2012 Share Posted December 22, 2012 Olá pessoal. Não sei se estão reparando, mas todos os sábados estou postando um novo tutorial aqui no fórum. Hoje abordarei como instalar NginxAdmin num servidor com cPanel e configura-lo para melhor performance. O que é o NginX? É um servidor de conteúdo Web, sendo considerado um dos mais rápidos do planeta e é reconhecido por ser leve, rápido e eficiente. Nginx pronuncia-se enginékis. As vantagens do Nginx: -> Menor carga (load); -> Diminui um pouco do I/O (não muita coisa). -> Páginas carregam mais rápido; -> Aumenta em várias vezes a capacidade máxima de usuários simultaneamente online no servidor. -> Não aumenta o consumo de RAM mais que 256MB em plena carga. -> Compatível com qualquer CMS, loja online ou sistema que utilize o dewrite do apache. Não é necessário criar regras de reescrita de URL´s para o Nginx. Mais a frente explico o porquê. -> Funciona com CloudLinux sem problema algum. Desvantagens: -> Recriar os Virtual Hosts manualmente toda vez que um site mudar um IP (passar para um IP dedicado ou vice-versa). -> Recriar os Virtual Hosts manualmente toda vez que migrar um novo domínio para o servidor. 1º Passo: Instalação do NginXAdmin. Acessar o SSH do seu servidor cPanel como root e em seguida executar os comandos abaixo: cd /usr/local/src wget http://nginxcp.com/latest/nginxadmin.tar tar xf nginxadmin.tar cd publicnginx ./nginxinstaller install Se aparecer no seu SSH a palavra NGINX escrita com traços, a instalação foi executada com êxito. 2º Passo: Limpando o cache do NginX Já me contataram várias vezes com problemas de /tmp cheio após a instalação do NginX. Isso se deve ao fato de que tem que executar o cron de limpeza a cada hora. Inclusive na página inicial do Plugin no cPanel há instruções referente a isto. Ainda no SSH de seu servidor, execute: crontab -e No final do arquivo, adicione a linha: 0 */1 * * * /usr/sbin/tmpwatch -dm 1 /tmp Salve o arquivo e pronto! 3º Passo: Configurando o Nginx Acesse o seu servidor cPanel, e vá em Plugins > NginxAdmin > Configuration Editor Em roxo estão as varíaveis que iremos alterar: worker_process Nada mais é do que a quantidade de processos simultâneos do NginX. O valor padrão é 2 porém deve ser alterado para melhor performance. Porém, não se deve abusar desse número. Na documentação oficial cita-se que deve ser usado o mesmo número de cores, porém, na prática vemos certa instabilidade em trabalhar com muitos processos. Há um consenso prático de que a partir de 4 cores, o desempenho não muda muito, logo o número ideal pode ser calculado por: Se o número de cores for maior que 4, adicionar 1 ponto a mais para cada 4 cores extras. Se o número de cores for menor ou igual a 4, utilizar o número real de cores. worker_connections É a quantidade máxima de conexões que um worker_process pode receber. Não há um valor padrão ou formula para isso. Em VPS´s com menos de 1GB de RAM, deve-se testar inicialmente o valor como 768. Se não houver problemas em horários de pico, pode ser incrementado. Em servidores com 1 a 4GB de Ram, pode-se usar cada GB * 768. Em servidores com mais de 4GB de Ram, pode-se usar cada GB * 512. E caso tenha mais que 8GB RAM, a partir do 8ªGB, some mais 384. use epoll; Esta linha não vem no arquivo de configuração, e deve ser adicionada imediatamente após a linha worker_connections (antes de fechar chaves, "}"). Somente adicionar caso sua versão do kernel seja 2.6 ou superior. Para checar sua versão do kernel, basta rodar no SSH o seguinte comando: uname -r Essa linha nada mais faz do que otimizar o Nginx para o Linux com kernel 2.6 em diante. worker_rlimit_nofile Essa opção trata do número máximo de arquivos que um processo (worker) poderá abrir. Pode ser desativada na grande maioria das casos, basta adicionar um sustenido (#) a frente para comentar esta linha. ---- Agora só marcar a caixa de seleção "Restart Nginx" e atualizar! A título de curiosidade, para quem é habituado com o Apache, o número de Max Clients do Nginx = workers_process * worker_connections. 4º Passo: Gerando os Virtual Hosts (VHosts) Como disse anteriormente, o Nginx não conflita com as regras de reescrita do Apache. Todos os websites que estão no servidor continuarão funcionando normalmente, pois qualquer arquivo com extensão não terminada em .ico .gif .jpg .css .js .pdf, etc... serão repassadas diretamente ao Apache, que por sua vez, vai processar os rewrites. Bom, agora basta clicar no ícone "Rebuild Vhosts", aguardar.... E reiniciar o Nginx em "Restart Nginx". Toda vez que você migrar um domínio ou mudar um IP, se fará necessário gerar novamente os Vhosts. É isso pessoal. Feliz natal! Link to comment Share on other sites More sharing options...
Jamis Henrique Posted December 22, 2012 Share Posted December 22, 2012 Parabéns cara, ótimo tutorial, ira ajudar muitas pessoas :) Link to comment Share on other sites More sharing options...
LucasRibeiro Posted December 23, 2012 Share Posted December 23, 2012 Otimo tutorial, não sabia muito sobre essa parte do virtualhosts e da configuração dele. No meu servidor eu uso o comando rm -fR /tmp/* em uma cron para limpar a pasta tmp em 2 em 2 horas. Link to comment Share on other sites More sharing options...
joaopaulo Posted December 23, 2012 Author Share Posted December 23, 2012 Otimo tutorial, não sabia muito sobre essa parte do virtualhosts e da configuração dele. No meu servidor eu uso o comando rm -fR /tmp/* em uma cron para limpar a pasta tmp em 2 em 2 horas. O ruim é que se um site armazena sessões em disco, se a pessoa fizer login e o seu cron for executado na sequencia, ela cai de novo... Nesse caso, delete apenas arquivos com mais de X tempo de vida. Link to comment Share on other sites More sharing options...
redirect Posted December 23, 2012 Share Posted December 23, 2012 instalando esse plugin não precisa configurar as portas do nginx e apache? eles vão usar a mesma porta? Link to comment Share on other sites More sharing options...
joaopaulo Posted December 23, 2012 Author Share Posted December 23, 2012 instalando esse plugin não precisa configurar as portas do nginx e apache? eles vão usar a mesma porta? O plugin automaticamente muda a porta do apache para a 8081 para http e https fica na 443 via apache. O cpanel continuará rodando na porta 2087 via apache. Já que você perguntou, deixe-me acrescentar: As vezes acontece de todos sites ficarem offline. Se o Cpanel estiver acessível, é porque o Nginx está com pau, basta reiniciar o nginx via SSH e ser feliz. Para se prevenir disso, basta adicionar um cron reiniciando o Nginx diariamente. Esse problema é relacionado com o estouro de buffers. Link to comment Share on other sites More sharing options...
Jordan Miguel Posted December 24, 2012 Share Posted December 24, 2012 O plugin automaticamente muda a porta do apache para a 8081 para http e https fica na 443 via apache. O cpanel continuará rodando na porta 2087 via apache. Já que você perguntou, deixe-me acrescentar: As vezes acontece de todos sites ficarem offline. Se o Cpanel estiver acessível, é porque o Nginx está com pau, basta reiniciar o nginx via SSH e ser feliz. Para se prevenir disso, basta adicionar um cron reiniciando o Nginx diariamente. Esse problema é relacionado com o estouro de buffers. Estranho, uso este plugin há mais de um ano e nunca notei tal problema em nenhum de meus servidores e nunca foi reportado lá no forum.. Mas é bom saber, de qualquer forma, se tiver algo mais concreto, me passe que eu posso dizer ao desenvolvedor para que ele verifique. Link to comment Share on other sites More sharing options...
joaopaulo Posted December 24, 2012 Author Share Posted December 24, 2012 Estranho, uso este plugin há mais de um ano e nunca notei tal problema em nenhum de meus servidores e nunca foi reportado lá no forum.. Mas é bom saber, de qualquer forma, se tiver algo mais concreto, me passe que eu posso dizer ao desenvolvedor para que ele verifique. Eu já mandei emails a malta a respeito disso, nem eles sabem a causa. Mas em algum fórum aí (acho que foi no expertexchange) foi comentado essa questão do estouro dos buffers do proxy. Link to comment Share on other sites More sharing options...
selrahcazuos Posted April 14, 2013 Share Posted April 14, 2013 Olá, alguem poderia me dar uma dica de como resolver este pequeno problema: 1 - Instalei o nginx seguindo o tutorial do forum. 2 - após instalado e configurado o nginx todos os endereços digitados para os sites hospedados no servidor ex: https://cpanel.meudominio.com.br retorna o seguinte endereço no navegador : https://cpanel.meudominio.com.br%2C+cpanel.meudominio.com.br:2083/ Agradeço antecipadamente pela ajuda. 1 Link to comment Share on other sites More sharing options...
Recommended Posts