12Sep

Tweaking um servidor virtual virtual dedicado

click fraud protection

Quando você obtém um servidor virtual dedicado para executar o seu site, é provável que esteja configurado para todos e não personalizado para maximizar o desempenho para a execução de um site.

Conteúdo

[ocultar]

  • 1 Visão geral
  • 2 Configuração Linux
    • 2.1 Desativar DNS
    • 2.2 Desativar SpamAssassain
    • 2.3 Desativar xinetd
    • 2.4 Limitar a utilização da memória Plesk
    • 2.5 Desativar ou Desligar 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 do PHP
    • 5.1 Remover Módulos de PHP desnecessários
    • 5.2 Cache de código do PHP
  • 6 Backups
    • 6.1 Criar script de backup automatizado
    • 6.2 Backups de sincronização fora do site com Rsync
  • 7 Segurança
    • 7.1 Desativar raizLogin Over SSH
    • 7.2 Desativar SSH Versão 1
    • 7.3 Reiniciar o Servidor SSH
    • 7.4 Verificar as Portas Abertas
    • 7.5 Configurar um Firewall
  • 8 Ver também
  • 9 Referências
instagram viewer

Visão geral

Há uma série de áreas problemáticas onde nós want para maximizar o desempenho:

  • Configuração do Linux
    Geralmente, os serviços que funcionam não precisam ser, desperdiçando memória que pode 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 mudanças importantes para aumentar o desempenho de um ótimo negócio.
  • Configuração do Apache
    Por padrão, a maioria dos provedores de hospedagem instalam o apache com quase todos os módulos instalados. Não há motivos para carregar módulos se você nunca vai usá-los.
  • Configuração PHP
    A configuração padrão do PHP está igualmente inchada, geralmente há uma tonelada de módulos extras desnecessários instalados.
  • PHP Opcode Cache
    Em vez de permitir que o PHP recompile os scripts cada vez, um cache de código operacional armazena os scripts compilados na memória para grandes aumentos de desempenho.
  • Backups
    Provavelmente deveria configurar alguns backups automatizados, já que o seu provedor de hospedagem não o fará por você.
  • Security
    Claro, o Linux é seguro o suficiente por padrão, mas geralmente há alguns problemas de segurança flagrantes que você pode corrigir com algumas configurações rápidas.

Configuração do Linux

Há uma série de ajustes que você pode fazer, o que variará ligeiramente com base no servidor que você está usando. Esses ajustes são para um servidor que executa o CentOS, mas eles devem trabalhar para a maioria dos servidores DV.

Desativar DNS

Se seu provedor de hospedagem lidar com o DNS para seu domínio( provável), então você pode desativar o serviço DNS de execução.

desabilita dns /etc/init.d/ chamado stop chmod 644 /etc/init.d/ chamado

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

Desative o SpamAssassain

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

/etc/init.d/ psa-spamassassin parar 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 a utilização da memória Plesk

Se você usa o painel plesk, você pode 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 esta opção é conhecida por trabalhar em servidores DV MediaTemple, mas não foi verificada em nenhum outro.(Ver Referências)

Desativar ou Desligar Plesk( opcional)

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

Execute o seguinte comando para desativar o plesk:

/etc/init.d/ psa parar

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

chmod 644 /etc/init.d/ psa

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

Configuração do MySQL

Habilite o Cache de Consulta

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

[mysqld] query-cache-type = 1 query-cache-size = 8M

Você podeAdicione mais memória ao cache da consulta se desejar, mas não use muito.

Desativar TCP / IP

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

netstat -an |grep 3306

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

skip-networking

Configuração do Apache

Abra seu arquivo httpd.conf, encontrado frequentemente em /etc/httpd/conf/ httpd.conf

Encontre a linha que se parece com isto:

Timeout 120

E alterá-lo para isso:

Timeout 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 paraTenha em mente quando ajustar um servidor na plataforma PHP é que cada thread apache único irá carregar o PHP em uma localização separada na memória. Isso significa que se um módulo não utilizado adiciona 256k de memória ao PHP, em 40 threads apache você está desperdiçando 10MB de memória.

Remove Módulos PHP desnecessários

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

Comente com quaisquer módulos de carga com estes módulos:

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

Todo: adicione mais informações aqui.

PHP Opcode Cache

Theresão uma série de caches opcode que você pode usar, incluindo APC, eAccelerator e Xcache, sendo a última minha preferência pessoal devido à estabilidade.

Baixe o xcache e extraie-o para um diretório e, em seguida, execute os seguintes comandos da origem xcachediretório:

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

Abra seu arquivo php.ini eAdicione uma nova seção para 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 = "myusername" 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 variável 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 = Desligado xcache.readonly_protection =Em xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = On xcache.optimizer = Desligado

Todo: Precisa expandir este um bit e link para xcache nas referências.

Backups

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

Criar Script de Backup Automatizado

Eu costumo começar criando um diretório / backups, com um diretório de arquivos /backups/ abaixo dele. Você pode ajustar esses caminhos se desejar.

mkdir -p Arquivos /backups/

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 mysqldump senha conforme necessário:

#!/bin/ sh THEDATE = `data +% d% m% y% H% M` mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ THEDATE.bak tar -cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ my-website-path / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar encontre o site /backups/files/ * -mtime +5 -exec rm{ } \;encontre /backups/files/ db * -mtime +5 -exec rm{ } \;

O script primeiro criará uma variável de data para que todos os arquivos sejam denominados o mesmo para um único backup, então despeja o banco de dados, acerta os arquivos da Web e os gzips. Os comandos de busca são usados ​​para remover qualquer arquivo com mais de 5 dias, uma vez que você não deseja que sua unidade fique sem espaço.

Faça 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. Verifique se você usa 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 de antemão executando-o enquanto estiver conectado à conta de usuário.(Normalmente, eu executo os backups como root)

Backs de sincronização fora do site com o Rsync

Agora que você possui backups automatizados do seu servidor, você pode sincronizá-los em outro lugar, usando o utilitário rsync. Você quer ler este artigo sobre como configurar chaves ssh para login automático: Adicionar SSH pública ao servidor remoto em um único comando

Você pode testar isso executando esse comando em uma máquina Linux ou Mac em outro local( Item um servidor linux em casa, onde é que eu administrai isso)

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

Isso levará bastante tempo para ser executado pela primeira vez, mas no final o seu computador local deve ter uma cópiado 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 crontab:

crontab -e

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

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

Você pode agendá-lo para executar em um momento diferente, ou apenas uma vez por dia. Isso é mesmo para você.

Observe 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 é certificar-se de que você tenha uma conta de usuário regular para usar através do ssh e certifique-se de que pode usar su para alternar para a raiz.É uma idéia muito ruim para permitir o login direto para root over ssh.

Desativar o Login da Raiz Sobre SSH

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

#PermitRootLogin sim

Altere essa linha para se parecer com isto:

PermitRootLogin no

Certifique-se de que você tenha uma conta de usuário normal e possa su pararaiz antes de fazer isso mudar, caso contrário você pode se bloquear.

Desativar SSH Versão 1

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

#Protocol 2,1 Protocolo 2

Certifique-se de que você está usando apenas o Protocolo 2 como mostrado.

Reinicie o Servidor SSH

Agora, você precisará reiniciar o servidor SSH para que isso tenha efeito.

/etc/init.d/ sshd reiniciar

Verificar portas abertas

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

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 Iptables no Linux

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

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

Consulte também

  • Usando Iptables no Linux

Referências

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