nginx - qual caminho é melhor para redirecionar e por que

4

Eu quero redirecionar de www.mydomain.com para domain.com no nginx. Eu pesquiso na internet e descobri duas maneiras:

Primeira maneira

server {
            listen   80;
            server_name  www.domain.com;
            rewrite ^/(.*) http://domain.com/$1 permanent;
}

Segunda via

server {
            listen   80;
            server_name  www.domain.com;
            return 301 $scheme://domain.com$request_uri;
}

Ambas as formas funcionam. Mas qual deles devo usar e por quê?

    
por Christos Baziotis 27.09.2013 / 14:47

1 resposta

6

O segundo caminho é melhor ...

server {
  listen   80;
  server_name  www.domain.com;
  return 301 $scheme://domain.com$request_uri;
}

Por que

Deixe-me citar diretamente no wiki oficial do Nginx, em Armadilhas e erros comuns :

By using the built-in variable $request_uri, we can effectively avoid doing any capturing or matching at all, and by using the return directive, we can completely avoid evaluation of regular expression.

Meus próprios pensamentos ...

Por padrão, o regex é caro e diminui o desempenho.

    
por 27.09.2013 / 15:29