Nginx: Como servir URLs diferentes com configurações diferentes de um arquivo?

1

Eu tenho milhares de arquivos de texto com o nome ABC . Gostaria de acessar esses arquivos de URL diferente: - se for ABC ou ABC.txt , gostaria de adicionar default_type text/plain e veicular esse arquivo - se for ABC.html , gostaria de adicionar default_type text/html e veicular esse arquivo (para que eu tenha duas versões diferentes do mesmo arquivo).

É possível fazer isso no nginx? O fato de uma URL poder ser correspondida apenas com uma diretiva location me causa problemas para encontrar uma maneira "limpa".

    
por jcisio 07.12.2012 / 12:20

2 respostas

1

Você deve tentar criar um local separado para cada extensão de arquivo e usar um redirecionado interno. Vai ser algo assim:

location /ABC.txt {
  add_header Content-Type text/plain;
  rewrite /ABC last;
}
location /ABC.html {
  add_header Content-Type text/html;
  rewrite /ABC last;
}
location /ABC {
  alias /var/www/ABC.txt
}

Eu não prometo que funcionará porque não testei em um nginx real.

    
por 07.12.2012 / 15:53
1

O nginx processa o tipo MIME sugerido com base no URI. Eu tentei a seguinte combinação e funciona:

    root /usr/share/nginx/www;

    default_type text/plain;

    location = /abc.txt {
      alias /usr/share/nginx/www/abc;
    }

    location /abc.html {
      alias /usr/share/nginx/www/abc;
    }
    
por 07.12.2012 / 18:17