Gerenciar nginx reescreve na pasta do projeto

1

Eu estou tentando descobrir como migrar do Apache para o nginx, mantendo as regras de reescrita flexíveis para mudar para os desenvolvedores. Esta é a nossa configuração atual:

  • Temos um arquivo .htaccess na pasta raiz do projeto (e também em algumas subpastas)
  • Neste arquivo .htaccess, os desenvolvedores podem definir novas regras para permalinks para scripts específicos (não usamos um arquivo index.php "global")
  • Este arquivo .htaccess está incluído no nosso repositório Git, portanto, adicionar / alterar as reescritas não exige que o desenvolvedor altere a configuração do servidor (para a qual ele não tem permissão)

Até onde eu aprendi, não existe um equivalente .htaccess por diretório com nginx. Então, como podemos resolver isso? Temos que usar um arquivo index.php "global" para resolver as reescritas? Isso provavelmente diminuiria significativamente o desempenho geral.

P.S. Como você deve ter notado, eu nunca usei o nginx antes.

    
por 2ndkauboy 10.10.2014 / 18:26

1 resposta

0

OK, primeiramente eu acho que você deve considerar cuidadosamente se o nginx irá realmente ajudá-lo com seu problema de desempenho (por seu comentário) e testá-lo em um ambiente de desenvolvimento antes de se preocupar com o funcionamento da sua implementação.

É verdade que o nginx é mais rápido e sua arquitetura multi-thread ajuda a lidar com cargas altas, mas o seu site PHP seria extraordinariamente incomum se a parte da sua operação que você está procurando acelerar ou dois por cento dos atrasos totais. Seu gargalo certamente estará no seu banco de dados e na execução do PHP.

Você provavelmente deve olhar primeiro para o cache de compilação do PHP (por exemplo, APC), um proxy de front end (por exemplo, verniz ou squid), cache interno dentro de sua aplicação (é este wordpress? há alguns bons módulos de cache lá). Entregar a entrega de arquivos estáticos apenas ao nginx pode ser uma boa ideia, mas provavelmente é melhor usar seus próprios proxies ou uma rede de distribuição de conteúdo para esse conteúdo.

Se você decidir prosseguir, algumas ferramentas vêm à mente, embora sejam ferramentas bastante pesadas. Você pode usar ferramentas de gerenciamento de configuração e integração contínua (por exemplo, Jenkins e Puppet, ou equivalentes) para implantar sua configuração de um repositório de controle de versão em seu servidor sempre que ela for registrada na ramificação apropriada. Isso é muita complexidade de infra-estrutura para aprender e construir, e sem muito conhecimento, habilidade e cuidado, você pode estar apenas dando aos seus desenvolvedores acesso root de qualquer maneira. O sistema de delegação do Apache através do .htaccess foi desenvolvido ao longo de muitos anos, e você não vai replicar sua segurança com pressa.

Volte e confira suas premissas com uma ferramenta de criação de perfil sobre quanto de um problema de desempenho é seu tratamento de regex. Eu usei principalmente Xdebug, mas existem outras boas alternativas.

    
por 13.10.2014 / 18:18

Tags