htaccess vrs httpd.conf?

4

Ainda é verdade que você não deve usar arquivos htaccess se você puder usar o httpd.conf?

O site Apache diz "Em geral, você nunca deve usar arquivos .htaccess, a menos que você não tenha acesso ao arquivo principal de configuração do servidor." Mas eu não sei quantos anos esse conselho é, ou se ainda é relevante.

Estou trabalhando em um site grande que usa apenas o arquivo httpd.conf. Mas está ficando muito longo e, é claro, requer uma reinicialização a qualquer momento que uma mudança é feita. E com o número de sites departamentais em execução no site principal (e todos usando o arquivo httpd.conf), é desestimulante fazer alterações.

Agora estamos executando o wordpress 3 (em uma configuração multisite) também. Eu quero testar algumas mudanças nas regras de configuração, mas a única maneira que eu posso fazer atualmente é continuar reiniciando o apache, o que eu prefiro não fazer no site ao vivo. (em particular, as regras de reescrita parecem estar se comportando mal, onde algumas postagens de blog estão sendo adicionadas com "www.", enquanto outras não são)

Eu estava pensando em ativar o .htaccess apenas na pasta do wordpress, mas é sensato?

Nosso servidor está ocupado (cerca de 60 mil page views por dia, de acordo com o google), mas não está sendo muito sobrecarregado.

Qual é a melhor prática atual? Os servidores agora são suficientemente grunhidos para que um possível impacto de pequena performance seja negligenciável em comparação com a facilidade de gerenciamento dos arquivos .htaccess?

    
por nedlud 12.04.2011 / 03:55

3 respostas

5

But it's getting very long and of course requires a reboot any time a change gets made.

Se o tamanho for um problema, considere detalhar as seções de configuração e usar o Incluir diretiva em vez disso. Como outros já disseram, é possível recarregar a configuração do httpd com 'recarregar' ou 'reiniciar' e isso deve reduzir a interrupção de seus usuários. Você precisaria treinar seus administradores para usar 'reload' ou 'graceful', o que é mais fácil dizer depois disso - muitas pessoas não sabem sobre esses comandos, e algumas pessoas não confiam neles.

Aqui estão algumas razões pelas quais os arquivos .htaccess são considerados ruins:

  1. Os arquivos .htaccess causam confusão. Certa vez, herdei um site que tinha mais de 50 arquivos .htaccess em toda a hierarquia de diretórios, criados por dezenas de pessoas diferentes com mais de 6 anos. Foi muito difícil descobrir a "configuração do servidor" para qualquer diretório em particular, ou por que certos recursos não funcionavam em determinados diretórios.

  2. Segurança: Qualquer usuário que possa escrever no arquivo .htaccess pode substituir algumas de suas configurações cuidadosamente pensadas que você colocou no httpd.conf, a menos que você tenha o cuidado de restringir as opções disponíveis com AllowOverride . Veja Quando (não) usar arquivos .htaccess para mais informações.

  3. Auditoria: é fácil criar um gerenciamento de configuração para seus principais diretórios httpd.conf e Include'd. Isso fornece uma boa trilha de auditoria de quem fez o quê. É mais difícil implementar o gerenciamento de configuração quando os arquivos de configuração estão espalhados pela hierarquia de diretórios.

  4. Perda de controle: é possível que alguém crie um arquivo .htaccess e não lhe diga. Finja que alguém fez isso às 5 da tarde de uma sexta-feira, adicionou um monte de regras mod_rewrite que fizeram a coisa errada e quebrou um monte de páginas, e depois a pessoa saiu para o fim de semana. Você não descobrirá o problema até segunda-feira.

Certamente há casos em que os arquivos .htaccess fazem sentido - se houver apenas um punhado de arquivos .htaccess, e o objetivo de cada um deles é bem compreendido.

    
por 12.04.2011 / 05:52
1

A desvantagem do arquivo .htaccess é que você precisa carregar o arquivo com cada solicitação. Então, isso adiciona sobrecarga. Se todas as suas regras estiverem no seu arquivo conf, elas serão carregadas quando o apache for carregado, e é isso. Então, se você tiver um site com menos 60 mil arquivos, ele terá que ler. Além disso, quaisquer regras que possam ser pré-processadas não serão, o que poderá causar um atraso na resposta. Agora, a velocidade do disco, o processador e o RAM são abundantes e rápidos, eu acho que para a maioria dos sites o efeito é dificilmente perceptível.

Como crimson_penguin disse, há um motivo para o apache reler o arquivo de configuração sem reiniciá-lo. A maioria dos sistemas operacionais faz isso com o comando reload em vez do reinício. Se estiver usando o comando apache2ctl, você executará apache2ctl graceful para poder executar apache2ctl configtest primeiro para garantir que tudo esteja em ordem. Claro que você precisará rodar isso como root.

    
por 12.04.2011 / 05:21
1

.htaccess é analisado toda vez que se aplica. Isso adiciona uma carga pequena, mas desnecessária, no servidor. O arquivo conf é analisado apenas quando o servidor é carregado ou recarregado.

O uso do .htaccess depende do acesso ser ativado no arquivo conf.

Usando o .htaccess fornece ao administrador menos controle sobre a segurança, pois qualquer usuário que possa gravar o diretório de conteúdo pode substituir as configurações de segurança desse diretório. (Há opções de configuração que limitam esse recurso.) Em muitos sistemas, o próprio servidor da Web pode gravar diretórios de conteúdo aumentando o dano potencial se o servidor estiver comprometido.

Use apache2ctl graceful para substituir as reinicializações do servidor da web. Você pode configurar o acesso a chaves SSL pelo servidor da web se você executar qualquer serviço HTTPS.

    
por 12.04.2011 / 05:29