Qual é o nome e o local do arquivo de configuração do Nginx (equivalente ao htaccess)?


30

Existem muitos tutoriais sobre como escrever regras de reescrita do Nginx para imitar o arquivo .htaccess do Apache, mas não posso dizer com segurança que sei qual é o nome ou o local desse chamado arquivo de configuração do Nginx. Estou procurando especificamente o arquivo de configuração do Nginx que permite escrever o caminho do servidor e as diretivas PHP. Estou usando o Ubuntu 12 linux e Codeigniter como minha estrutura PHP.

Aqui está o que eu sei até agora:

  1. Este arquivo: /etc/nginx/nginx.confapesar de seu nome atraente, aparentemente não é o lugar para diretivas de servidor.
  2. Este arquivo: /etc/nginx/sites-available/defaultparece o que eu preciso (sou capaz de gerar erros de php específicos para meu aplicativo), mas não consigo corrigir o roteamento de caminho específico do Codeigniter. Primeiro de tudo, é este o arquivo "config" / .htaccess equivalente que todo mundo fala?

Seu problema não é com a linguagem PHP (isto é, programação em PHP), é com a configuração do PHP em um servidor específico, o que explica os votos próximos completamente válidos. Não posso comentar sobre a última parte do seu post, pois parece altamente subjetivo e tendencioso.
— nickb

11
Você pode encontrar onde o nginx config está localizado usando o nginx -Vque você pode encontrar no manual man nginx. A -Vopção está documentada como "-V Imprima a versão nginx, versão do compilador e configure os parâmetros do script". Se nginxnão estiver em seu caminho, o uso which nginxque retorna o caminho completo para nginx$(which nginx) -V
— bucabay

Respostas:


28

Eu uso PHP com nginx no meu servidor de desenvolvimento com a seguinte configuração:

  1. em /etc/nginx/nginx.confacrescentei: include /etc/nginx/sites-enabled/*;antes do último }.

  2. execute os seguintes comandos para criar as configurações do seu site:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. edite a configuração do site, algumas configurações possíveis (isto é o que me referi na minha instalação): http://kbeezie.com/view/nginx-configuration-examples/

  4. link para o site disponível para ativá-lo

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. lembre-se de que você pode realmente incluir arquivos nas configurações em praticamente qualquer lugar, isso facilita a criação de vários sites quando você deseja criar configurações semelhantes.

Sim, o .htaccess é comparável ao server{}bloco no nginx, mas eles também são muito diferentes. O nginx tem uma abordagem muito mais leve para analisar a configuração, e não examinará os diretórios do site em busca de configurações adicionais, apenas o que for visto pelo nginx.conf.


- @ Andrew, graças a muitas informações úteis !, por padrão, meu /etc/nginx/nginx.confarquivo já tem include /etc/nginx/sites-enabled/*;no final. Parece que esses dois arquivos estão conversando no meu servidor e agora estou lidando com problemas específicos do Codeigniter. Você está usando codeigniter? Há alguma funkiness caminho que eu preciso para obter uma alça sobre ...
— tim Peterson

Eu uso minha própria estrutura, que é bastante semelhante (embora mais primitiva) ao CodeIgniter. No momento, estou tentando obter minhas regras de regexp mod_rewrite convertidas no módulo HttpRewrite do nginx. Minha primeira grande descoberta foi superar os erros 403/404 que o nginx exibe quando configurei incorretamente o rootparâmetro. Sinta-se livre para verificar minhas perguntas, se você precisar de alguma inspiração.
— abestic9

obrigado pela dica sobre como verificar suas perguntas. Eu estou pensando que eu estou entendendo mais agora, graças à configuração me no caminho ...
— tim Peterson
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.