Nginx: Redirecionar endereço IP para nome de domínio

7

Com a seguinte configuração do Nginx:

server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;

    server_name isitmaintained.com;

    ...
}

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230;

    add_header X-Frame-Options "SAMEORIGIN";

    return 301 $scheme://isitmaintained.com$request_uri;
}

Estou tentando redirecionar http://178.62.136.230/ para o link , mas quando eu implemento essa configuração, acabo com Redirect loop ou ambos links.

O que estou fazendo de errado?

    
por Matthieu Napoli 17.09.2014 / 01:41

2 respostas

21

Tente isso no segundo bloco:

server {
    listen 80;
    server_name 178.62.136.230;

    return 301 $scheme://isitmaintained.com$request_uri;
}

O problema é que a segunda diretiva listen do bloco do servidor é mais específica que o primeiro bloco do servidor, portanto, é sempre usada. E como o segundo bloco é o único host virtual para essa especificação listen , ele é sempre usado.

    
por 17.09.2014 / 12:16
3

Você estava perto. Sua reescrita que você está procurando.

server {
    listen 178.62.136.230:80;
    server_name 178.62.136.230 isitmaintained.com;

    rewrite  ^/(.*)$  http://www.isitmaintained.com/$1 permanent;
}
server {
    listen 80;
    server_name www.isitmaintained.com;
    # Serve Stuff Here.
}
    
por 17.09.2014 / 10:41