Ajustando um Servidor Web Virtual Dedicado

Índice:

Ajustando um Servidor Web Virtual Dedicado
Ajustando um Servidor Web Virtual Dedicado

Vídeo: Ajustando um Servidor Web Virtual Dedicado

Vídeo: Ajustando um Servidor Web Virtual Dedicado
Vídeo: Seu celular foi roubado? Veja como proteger sua conta bancária - YouTube 2024, Novembro
Anonim

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

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 Desabilitar ou Desativar o Plesk (opcional)
  • 3 Configuração do 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 Não Necessários
    • 5.2 Cache de Código Operacional 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á motivo 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 extras 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), você pode desabilitar a execução do serviço DNS.

disable 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 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á muito 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

Se você desativá-lo, não será possível iniciá-lo manualmente sem alterar as permissões do 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] como esta:

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

Você pode adicionar mais memória ao cache de consulta se quiser, mas não usar 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:

skip-networking

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:

Timeout 120

E mude 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 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. Isso significa que, se um módulo não utilizado adicionar 256k de memória ao PHP, em 40 segmentos do apache, você estará desperdiçando 10 MB de memória.

Remova os módulos desnecessários do PHP

Você precisará localizar o arquivo php.ini, que normalmente é 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 este último 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 os módulos do php forem carregados de 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]; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = 'mmap' xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Change xcache.var_size to adjust the size of variable cache 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 = Off xcache.readonly_protection = On xcache.mmap_path = '/tmp/xcache' xcache.coredump_directory = '' xcache.cacher = On xcache.stat = On xcache.optimizer = Off

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=`date +%d%m%y%H%M` mysqldump -uadmin -pPASSWORD DATABASENAME > /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 find /backups/files/site* -mtime +5 -exec rm {}; find /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 de localização são usados para remover arquivos com mais de cinco dias, pois você não quer que seu disco 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 local 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ê desejará ler este artigo sobre como configurar chaves ssh para login automático: Adicionar chave SSH pública 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/files/* /offsitebackups/

Isso levará um bom tempo para ser executado na 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ê perceberá que usamos o caminho completo para rsync aqui.

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

Você pode programá-lo para ser executado em um horário diferente ou apenas uma vez por dia. Isso é 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 o 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 no

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 nenhum motivo para usar outra coisa senão a versão 2 do SSH, pois é mais seguro do que as versões anteriores. Edite o arquivo / etc / ssh / sshd_config e procure a seguinte seção:

#Protocol 2,1 Protocol 2

Certifique-se de que você esteja usando 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ê tiver um endereço IP dinâmico, evite 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

Recomendado: