Pagina inicial » como » Ajustando um Servidor Web Virtual Dedicado

    Ajustando um Servidor Web Virtual Dedicado

    Quando você obtém um servidor virtual dedicado para executar seu site, há grandes chances de que ele esteja configurado para todos e não seja personalizado para maximizar o desempenho da execução de um site..

    Conteúdo

    [ocultar]

    • 1. Visão Geral
    • 2 Configuração do Linux
      • 2.1 Desativar DNS
      • 2.2 Desativar SpamAssassain
      • 2.3 Desativar xinetd
      • 2.4 Limitar o uso da memória do Plesk
      • 2.5 Desativar ou Desativar o Plesk (opcional)
    • 3 Configuração MySQL
      • 3.1 Habilitar cache de consulta
      • 3.2 Desativar TCP / IP
    • 4 Configuração do Apache
    • 5 Configuração PHP
      • 5.1 Remover Módulos PHP Desnecessários
      • 5.2 Cache Opcode PHP
    • 6 backups
      • 6.1 Criar script de backup automatizado
      • 6.2 Sincronizar backups fora do site com o Rsync
    • 7 Segurança
      • 7.1 Desativar o logon da raiz por SSH
      • 7.2 Desativar versão do SSH 1
      • 7.3 Reinicie o servidor SSH
      • 7.4 Verificar portas abertas
      • 7.5 Configurar um firewall
    • 8 Veja também
    • 9 referências

    visão global

    Há várias áreas problemáticas em que queremos maximizar o desempenho:

    • Configuração do Linux
      Geralmente, há serviços em execução que não precisam ser, desperdiçando memória que poderia ser usada para mais conexões.
    • Configuração do MySQL
      Muitas vezes, as configurações padrão são baseadas em um pequeno servidor, podemos adicionar algumas alterações importantes para aumentar o desempenho muito.
    • Configuração do Apache
      Por padrão, a maioria dos provedores de hospedagem instala o apache com quase todos os módulos instalados. Não há razão para carregar módulos se você não for usá-los.
    • Configuração PHP
      A configuração padrão do PHP é similarmente inchada, geralmente há uma tonelada de módulos extra desnecessários instalados.
    • Cache Opcode PHP
      Em vez de permitir que o PHP recompile os scripts todas as vezes, um cache opcode armazenará em cache os scripts compilados na memória para aumentar o desempenho.
    • Backups
      Provavelmente deve configurar alguns backups automatizados, já que seu provedor de hospedagem não fará isso por você.
    • Segurança
      Claro, o Linux é seguro o suficiente por padrão, mas geralmente há alguns problemas de segurança gritantes que você pode corrigir com algumas configurações rápidas.

    Configuração Linux

    Há vários ajustes que você pode fazer, que variam um pouco com base no servidor que você está usando. Esses ajustes são para um servidor rodando o CentOS, mas eles devem funcionar para a maioria dos servidores de DV.

    Desativar DNS

    Se o seu provedor de hospedagem lida com o DNS do seu domínio (provavelmente), então você pode desabilitar o serviço DNS de executar.

    desativar dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    O comando chmod remove a permissão de execução do script, impedindo que ele seja executado na inicialização.

    Desativar SpamAssassain

    Se você não estiver usando contas de e-mail no seu próprio servidor, não se preocupe em executar ferramentas anti-spam. (Além disso, você deve verificar o Google Apps, muito melhor solução de e-mail)

    /etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin

    Desativar xinetd

    O processo xinetd abriga uma série de outros processos, nenhum dos quais é útil para um servidor web típico.

    /etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd

    Limite de uso da memória do Plesk

    Se você usar o painel plesk, poderá forçá-lo a usar menos memória adicionando um arquivo de opções.

    vi /usr/local/psa/admin/conf/httpsd.custom.include

    Adicione as seguintes linhas ao arquivo:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    Observe que essa opção é conhecida por funcionar nos servidores do MediaTemple DV, mas não foi verificada em nenhuma outra. (Ver referências)

    Desativar ou desativar o Plesk (opcional)

    Se você usa o Plesk apenas uma vez por ano, há poucas razões para deixá-lo funcionando. Note que este passo é completamente opcional, e um pouco mais avançado.

    Execute o seguinte comando para desativar o plesk:

    /etc/init.d/psa stop

    Você pode desativá-lo da execução na inicialização executando o seguinte comando:

    chmod 644 /etc/init.d/psa

    Note que se você desativá-lo, então você não pode iniciá-lo manualmente sem alterar as permissões de arquivo de volta (chmod u + x).

    Configuração MySQL

    Ativar cache de consulta

    Abra seu arquivo /etc/my.cnf e adicione as seguintes linhas em sua seção [mysqld] assim:

    [mysqld] query-cache-type = 1 query-cache-size = 8 milhões

    Você pode adicionar mais memória ao cache de consulta se quiser, mas não use muito.

    Desativar TCP / IP

    Um número surpreendente de hosts permite o acesso ao MySQL no TCP / IP por padrão, o que não faz sentido para um site. Você pode descobrir se o mysql está escutando no TCP / IP executando o seguinte comando:

    netstat -an | grep 3306

    Para desabilitar, adicione a seguinte linha ao seu arquivo /etc/my.cnf:

    pular rede

    Configuração do Apache

    Abra o seu arquivo httpd.conf, freqüentemente encontrado em /etc/httpd/conf/httpd.conf

    Encontre a linha que se parece com isso:

    Tempo limite de 120

    E mude para isso:

    Tempo limite 20

    Agora encontre a seção que inclui essas linhas e ajuste para algo semelhante:

    StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

    Configuração PHP

    Uma das coisas que devem ser lembradas quando se está ajustando um servidor na plataforma PHP é que cada thread do apache vai carregar o PHP em um local separado na memória. Isto significa que se um módulo não utilizado adiciona 256k de memória ao PHP, através de 40 threads apache você está desperdiçando 10MB de memória.

    Remova os módulos PHP desnecessários

    Você precisará localizar o arquivo php.ini, que geralmente é encontrado em /etc/php.ini (Note que em algumas distribuições, haverá um diretório /etc/php.d/ com vários arquivos .ini, um para cada módulo.

    Comente qualquer linha de módulo de carga com estes módulos:

    • odbc
    • snmp
    • pdo
    • odbc pdo
    • mysqli
    • carregador-ioncube
    • json
    • imap
    • ldap
    • ncurses

    Todo: adicione mais informações aqui.

    Cache Opcode PHP

    Há vários caches opcode que você pode usar, incluindo APC, eAccelerator e Xcache, sendo o último a minha preferência pessoal devido à estabilidade.

    Faça o download do xcache e extraia-o em um diretório e, em seguida, execute os seguintes comandos no diretório de origem do xcache:

    phpize ./configure --enable-xcache make make install

    Abra seu arquivo php.ini e adicione uma nova seção para o xcache. Você precisará ajustar os caminhos se seus módulos php forem carregados de algum outro lugar.

    vi /etc/php.ini

    Adicione a seguinte seção ao arquivo:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "meuusuario" xcache.admin.pass = "putanmd5hashhere" [xcache]; Altere xcache.size para ajustar o tamanho do cache do opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Altere xcache.var_size para ajustar o tamanho do cache de variáveis ​​xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Desativado xcache.readonly_protection = Em xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Ligado xcache.stat = Ligado xcache.optimizer = Desligado

    Todo: Precisa expandir um pouco e vincular ao xcache nas referências.

    Backups

    Há muito pouco mais importante do que ter backups automatizados do seu site. Você pode conseguir backups de snapshots do seu provedor de hospedagem, que também são muito úteis, mas eu prefiro ter backups automatizados também.

    Criar script de backup automatizado

    Eu geralmente começo criando um diretório / backups, com um diretório / backups / files abaixo dele. Você pode ajustar esses caminhos se quiser.

    mkdir -p / backups / files

    Agora crie um script backup.sh dentro do diretório de backups:

    vi /backups/backup.sh

    Adicione o seguinte ao arquivo, ajustando os caminhos e a senha do mysqldump, conforme necessário:

    #! / bin / sh THEDATE = "data +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backups / arquivos / sitebackup $ THEDATE .tar / var / www / vhosts / meu-site-caminho / httpdocs gzip /backups/files/sitebackup$THEDATE.tar localizar / backups / arquivos / site * -mtime +5 -exec rm  \; encontre / backups / files / db * -mtime +5 -exec rm  \;

    O script criará primeiro uma variável de data para que todos os arquivos tenham o mesmo nome para um único backup, depois copie o banco de dados, limpe os arquivos da Web e faça gzips. Os comandos find são usados ​​para remover qualquer arquivo com mais de 5 dias, já que você não quer que sua unidade fique sem espaço.

    Torne o script executável executando o seguinte comando:

    chmod u + x /backups/backup.sh

    Em seguida, você precisará atribuí-lo para ser executado automaticamente pelo cron. Certifique-se de usar uma conta que tenha acesso ao diretório de backups.

    crontab -e

    Adicione a seguinte linha ao crontab:

    1 1 * * * /backups/backup.sh

    Você pode testar o script antecipadamente, executando-o enquanto estiver conectado à conta do usuário. (Eu normalmente executo os backups como root)

    Sincronizar backups fora do site com o Rsync

    Agora que você tem backups automatizados do servidor em execução, é possível sincronizá-los em outro local usando o utilitário rsync. Você vai querer ler este artigo sobre como configurar chaves ssh para login automático: Adicionar chave pública SSH ao servidor remoto em um único comando

    Você pode testar isso executando este comando em um linux ou máquina Mac em outro local (eu tenho um servidor linux em casa, que é onde eu corro isso)

    rsync -a [email protected]: / backups / arquivos / * / offsitebackups /

    Isso levará um bom tempo para ser executado pela primeira vez, mas, no final, o computador local deverá ter uma cópia do diretório de arquivos no diretório / offsitebackups /. (Certifique-se de criar esse diretório antes de executar o script)

    Você pode agendar isso adicionando-o a uma linha de crontab:

    crontab -e

    Adicione a seguinte linha, que executará o rsync a cada hora na marca de 45 minutos. Você notará que usamos o caminho completo para o rsync aqui.

    45 * * * * / usr / bin / rsync -a [email protected]: / backups / arquivos / * / offsitebackups /

    Você pode programá-lo para ser executado em um horário diferente ou apenas uma vez por dia. Isso é realmente com você.

    Note que existem muitos utilitários que permitem sincronizar via ssh ou ftp. Você não precisa usar o rsync.

    Segurança

    A primeira coisa que você quer fazer é ter certeza de que você tem uma conta de usuário regular para usar através do ssh, e certifique-se de que você pode usar su para mudar para root. É uma péssima ideia permitir login direto para o root sobre o ssh.

    Desativar o logon da raiz por SSH

    Edite o arquivo / etc / ssh / sshd_config e procure pela seguinte linha:

    #PermitRootLogin yes

    Altere essa linha para ficar assim:

    PermitRootLogin não

    Certifique-se de que você tem uma conta de usuário regular e pode su a raiz antes de fazer essa alteração, caso contrário, você pode se trancar para fora.

    Desativar versão do SSH 1

    Não há realmente nenhuma razão para usar outra coisa senão a versão 2 do SSH, pois é mais segura do que as versões anteriores. Edite o arquivo / etc / ssh / sshd_config e procure a seguinte seção:

    #Protocol 2,1 Protocolo 2

    Certifique-se de usar apenas o Protocolo 2, conforme mostrado.

    Reinicie o servidor SSH

    Agora você precisará reiniciar o servidor SSH para que isso seja efetivado.

    /etc/init.d/sshd restart

    Verifique se há portas abertas

    Você pode usar o seguinte comando para ver em quais portas o servidor está atendendo:

    netstat -an | grep LISTEN

    Você realmente não deveria ter nada além de portas 22, 80 e possivelmente 8443 para plesk.

    Configurar um firewall

    Artigo principal: Usando o Iptables no Linux

    Opcionalmente, você pode configurar um firewall iptables para bloquear mais conexões. Por exemplo, eu geralmente bloqueio o acesso a outras portas que não sejam da minha rede de trabalho. Se você tem um endereço IP dinâmico, você vai querer evitar essa opção.

    Se você já seguiu todas as etapas deste guia até o momento, provavelmente não é necessário adicionar um firewall à mistura, mas é bom entender suas opções.

    Veja também

    • Usando o Iptables no Linux

    Referências

    • Otimizando seu servidor DV (mediatemple.net)
    • XCache