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

Все виртуальные хосты Nginx перенаправляют на один VHost

У меня около 4 разных имен хостов, определенных в файлах sites-enabled / domain.tld. Каждый из файлов имеет следующий вид:

#Redirect everything to the main site.
server {
        server_name *.abc.net;
        listen 80;

        root /var/www/vhosts/abc.net/httpdocs;

        if ($http_host != "acb.net") {
                rewrite ^ http://abc.net$request_uri permanent;
        }

        include /etc/nginx/conf.d/restrictions.conf;

        #Additional rules go here.

        # Only include one of the files below.
        include /etc/nginx/conf.d/wordpress.conf;

        # W3 Total Cache Rules
        include  /var/www/vhosts/abc.net/httpdocs/nginx.conf;
}

Каждый из серверных блоков в папке с поддержкой сайта изменяет только имя домена, поэтому abc.net становится xyz.com и так далее.

Проблема в том, что, независимо от наличия всех этих файлов конфигурации, все vhosts просто перенаправляют на один vhost. Я попытался перезапустить сервер nginx, перезагрузить его, а также перезагрузил сервер.

Эти запросы отправляются на вышестоящий php, на котором запущен PHP-FPM, если это помогает, и все домены работают на них.

Ценю вашу помощь. Спасибо :)

Попробуйте изменить блок server_name в каждом vhost

server {
  ...
  server_name   example.com  *.example.com;
  ...
}

или, как рекомендовано nginx

server {
    listen       80;
    server_name  *.example.com;
    return       301 http://example.com$request_uri;
}

server {
    listen       80;
    server_name  example.com;
    ...
    your config removing the if part
    ...
}

так...

        if ($http_host != "acb.net") {
            rewrite ^ http://abc.net$request_uri permanent;
        }

входит в каждый блок vhost? Или вы также не забыли изменить имя хоста на правильное значение?

Если нет, это многое объяснит :-)