Рейтинг:1

nginx перенаправляет один сайт на другой

флаг tr

У меня есть пара доменов на моем сервере. Есть мультисайт на wordpress и сайт на ванильном php. Все сайты WP работают правильно, но если сайт vanilla php перенаправляет на основной сайт WP. Вот конфиг основного сайта WP:

карта $http_host $blogid {
 1survey.cc 0;
 b-shield.icu 1;
 авиакомпания путешествия.жизнь 2;
}




сервер {
    имя_сервера 1survey.cc *.1survey.cc;
    вернуть 301 https://$host$request_uri;
    слушать 443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/1survey.cc/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/1survey.cc/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}

сервер {
    слушать 5.187.1.93:443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/1survey.cc/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/1survey.cc/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
    если ($host = www.1survey.cc) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot

   корень /home/fornex/wordpress;
   индекс index.php;

   client_max_body_size 7м;

   место расположения / {
        try_files $uri $uri/ /index.php?$args;
   }

    расположение ~* /\. {
        отрицать все;
    }

   расположение ~*\.(php)$ {
     fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
     fastcgi_index index.php;
     включить fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info;
    }


}

сервер {
    если ($host = www.1survey.cc) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    если ($ host = b-shield.icu) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    слушать 5.187.1.93:80;
    имя_сервера 1survey.cc *.1survey.cc;
    вернуть 404; # под управлением Certbot




}

сервер {
    если ($ хост = 1survey.cc) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    имя_сервера 1survey.cc *.1survey.cc;
    слушать 80;
    вернуть 404; # под управлением Certbot
}

Вот конфиг сайта vanilla php:

карта $http_host $blogid {
 1обзор.cc 1;
 b-shield.icu 0;
 авиакомпания путешествия.жизнь 2;
 одежда.остальное 3;
}


сервер {
    если ($ хост = www.b-shield.icu) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


    если ($ host = b-shield.icu) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot
    имя_сервера b-shield.icu *.b-shield.icu;
    вернуть 301 https://$host$request_uri;

    слушать 443 ssl; # под управлением Certbot
    ssl_certificate /etc/letsencrypt/live/1survey.cc/fullchain.pem; # под управлением Certbot
    ssl_certificate_key /etc/letsencrypt/live/1survey.cc/privkey.pem; # под управлением Certbot
    включить /etc/letsencrypt/options-ssl-nginx.conf; # под управлением Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # под управлением Certbot
}

сервер {
    если ($ хост = www.b-shield.icu) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot


слушать 80;

   имя_сервера b-shield.icu *.b-shield.icu;
   корень /home/fornex/b-shield.icu;
   индекс index.php;

 включить /home/fornex/b-shield.icu/nginx.conf;

   client_max_body_size 7м;

   место расположения / {
        try_files $uri $uri/ /index.php?$args;
   }

    расположение ~* /\. {
        отрицать все;
    }

   расположение ~*\.(php)$ {
     fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
     fastcgi_index index.php;
     включить fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}



сервер {
    если ($ host = b-shield.icu) {
        вернуть 301 https://$host$request_uri;
    } # управляется Certbot

    слушать 5.187.1.93:80;
    имя_сервера b-shield.icu *.b-shield.icu;
    вернуть 404; # под управлением Certbot


}

Если я попытаюсь получить доступ к b-shield.icu он перенаправляет на https://1survey.cc/wp-signup.php?new=b-shield.icu. Что не так?

Рейтинг:0
флаг jp

У тебя есть слушать 5.187.1.93:443 ssl; в одном сервер блокировать и слушать 443 ssl; в другой.

Nginx использует часть IP-адреса для выбора сервер блокирует серверы с более чем одним IP-адресом, где разные IP-адреса должны обрабатываться разными сервер блоки.

В большинстве случаев IP-адрес не требуется в Слушать утверждение.

Если у вас есть Слушать заявления с IP-адресом и некоторые без, более конкретные Слушать утверждение будет выбрано, вероятно, поэтому один из ваших сервер блоки не принимают соединения.

Для согласованности во всех ваших сервер блоки, используйте:

слушать 80;

и/или:

слушать 443 ssl;

Видеть этот документ для деталей.

stack avatar
флаг tr
спасибо, но я полностью переписал файлы конфигурации 3 раза и уже решил эту проблему. Возможно, ваш ответ будет кому-то полезен. Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.