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

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

map $http_host $blogid {
 1survey.cc 0;
 b-shield.icu 1;
 airlinetravel.life 2;
}




server {
    server_name 1survey.cc *.1survey.cc;
    return 301 https://$host$request_uri;
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/1survey.cc/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/1survey.cc/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    listen 5.187.1.93:443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/1survey.cc/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/1survey.cc/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    if ($host = www.1survey.cc) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

   root  /home/fornex/wordpress;
   index index.php;

   client_max_body_size 7m;

   location / {
        try_files $uri $uri/ /index.php?$args;
   }

    location ~* /\. {
        deny all;
    }

   location ~*\.(php)$ {
     fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
     fastcgi_index index.php;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info;
    }


}

server {
    if ($host = www.1survey.cc) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = b-shield.icu) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 5.187.1.93:80;
    server_name 1survey.cc *.1survey.cc;
    return 404; # managed by Certbot




}

server {
    if ($host = 1survey.cc) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    server_name 1survey.cc *.1survey.cc;
    listen 80;
    return 404; # managed by Certbot
}

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

map $http_host $blogid {
 1survey.cc 1;
 b-shield.icu 0;
 airlinetravel.life 2;
 apparel.rest 3;
}


server {
    if ($host = www.b-shield.icu) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = b-shield.icu) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    server_name b-shield.icu *.b-shield.icu;
    return 301 https://$host$request_uri;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/1survey.cc/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/1survey.cc/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.b-shield.icu) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


listen 80;

   server_name b-shield.icu *.b-shield.icu;
   root  /home/fornex/b-shield.icu;
   index index.php;

 include /home/fornex/b-shield.icu/nginx.conf;

   client_max_body_size 7m;

   location / {
        try_files $uri $uri/ /index.php?$args;
   }

    location ~* /\. {
        deny all;
    }

   location ~*\.(php)$ {
     fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
     fastcgi_index index.php;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}



server {
    if ($host = b-shield.icu) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 5.187.1.93:80;
    server_name b-shield.icu *.b-shield.icu;
    return 404; # managed by Certbot


}

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

Конфигурация nginx ubuntu вордпресс

1 ответ
1

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

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

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

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

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

listen 80;

и/или:

listen 443 ssl;

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

Ричард Смит

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *