Назад | Перейти на главную страницу

Nginx: перенаправить IP-адрес на доменное имя

Со следующей конфигурацией 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;
}

Я пытаюсь перенаправить http://178.62.136.230/ к http://isitmainolated.com/ но когда я развертываю эту конфигурацию, я получаю Redirect loop или обе эти ссылки.

Что я делаю не так?

Попробуйте это на втором блоке:

server {
    listen 80;
    server_name 178.62.136.230;

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

Проблема в том, что второй серверный блок listen Директива более специфична, чем первый серверный блок, поэтому используется всегда. А поскольку второй блок - единственный виртуальный хост для этого listen спецификация, всегда используется.

Вы были близки. Его перепишите, что вы ищете.

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.
}