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

Как остановить перенаправление Nginx на сервер по умолчанию?

Я настраиваю Nginx с PHP 5.3, например, для нескольких веб-сайтов, на которых работает Wordpress. Я только что добавил новый сайт, и он перенаправляется на страницу приветствия по умолчанию. Я не вижу «настоящих» ошибок в журналах.

Вот мой сокращенный nginx.conf:

http {
    access_log /var/log/nginx_access.log;
    index index.php index.html;

    server {
        listen          80 default_server;
        server_name     _;
        root            /opt/nginx/html;

        location / {
        }
    }

    server {
        listen          80;
        server_name     example.com *.example.com;                      
        rewrite ^       $scheme://www.example.com$request_uri? permanent;
    }

    server {
        listen       80;
        server_name  www.example.com;
        root /home/example/example.com;

        location / {
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass   unix:/var/run/php5-fpm/example.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
        }

}

Как указано в комментариях, директива listen в серверном блоке определяет его как значение по умолчанию (источник: http://nginx.org/en/docs/http/request_processing.html):

listen       80  default_server;

Следующее объявление означает недопустимое имя сервера (источник: http://nginx.org/en/docs/http/server_names.html) (чтобы он никогда не пересекался ни с одним из ваших действительных доменов):

Server_name _; 

Чтобы решить эту проблему, убедитесь, что у вас есть блок сервера с прослушиванием (порт) и server_name (виртуальный хост) - он будет запускаться первым, когда вы переходите от `` более точного к менее точному '', когда вы выполняете сопоставление имен виртуальных хостов в nginx :

Listen 80;
Server_name your-domain-name.com;