Серверные блоки Nginx не работают

Я успешно создал 2 серверных блока, используя это руководство по цифровой капле океана (виртуальный частный сервер).

Я попытался создать еще два, используя тот же метод, но у меня просто появляется белый экран, когда я посещаю домен, указанный в server_name (например, example.com).

Я перезапустил nginx и перезагрузил свой сервер.

Как мне проверить, работает ли моя конфигурация?

Вот моя конфигурация example.com из / etc / nginx / sites-available. Символьная ссылка на / etc / nginx / sites-enabled

server {
    listen 80;
    listen [::]:80;

    root /var/www/example.com/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html index.php;

    server_name example.com www.example.com;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
}

Вот мой /var/www/example.com/html/index.html

<html>
    <head>
        <title>Welcome to example.com</title>
    </head>
    <body style="background:#444444;">
        <h1>Success. The example.com server block is working!</h1>
    </body>
</html>

Используя инструмент поиска DNS, он показывает, что посещение моего домена возвращает IP-адрес моего сервера. Но когда я wget example.com, загружаемый файл index.html поступает от регистратора домена, а не от моего /var/www/example.com/html/index.html Это просто распространение DNS происходит медленно?


person Gruzzles    schedule 21.11.2016    source источник
comment
Не могли бы вы внести некоторую ясность в предложение DNS, в котором говорится, что IP-адрес попадает на мой сервер в ... Чего вы ожидаете? а что вы наблюдаете?   -  person Tim    schedule 21.11.2016
comment
Обновлено: использование инструмента поиска DNS показывает, что посещение моего домена возвращает IP-адрес моего сервера.   -  person Gruzzles    schedule 21.11.2016
comment
Если кто-то посещает ваш сервер, у него уже есть ваш IP-адрес. Так работает DNS. Я что-то упускаю?   -  person Tim    schedule 21.11.2016
comment
У меня есть 4 домена, указывающих на мой сервер и настроенных с помощью серверных блоков nginx (виртуальных хостов). Два моих домена работают отлично. Последние 2 показывают только белую страницу, а не файл index.html, который я хотел бы показать. Спасибо   -  person Gruzzles    schedule 21.11.2016


Ответы (2)


Думаю, теперь я понимаю. Распространение DNS может отличаться на сайте тестирования DNS и на DNS-серверах, которые вы используете. Однако есть и другие способы проверки.

Создание записи файла Hosts:

Расположение файлов следующее:

linux: /etc/hosts
windows: c:\windows\system32\drivers\etc

Вы открываете файл и добавляете запись для вашего нового имени хоста и IP. Пример использования 1.2.3.4 в качестве целевого IP и example.com в качестве имени хоста:

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1   localhost.localdomain   localhost
::1         localhost.localdomain   localhost
1.2.3.4     example.com

Теперь, когда вы выполняете wget или curl, он будет указывать на сервер в 1.2.3.4 вместо выполнения поиска в DNS.

Указание заголовка HOST: вручную с помощью telnet:

Вы также можете выполнить запрос GET вручную с помощью telnet и указать другое имя хоста, которое вы тестируете. Вот пример подключения к серверу Google с указанием другого имени хоста:

[ttucker@localhost tmp]$ telnet 216.58.217.206 80
Trying 216.58.217.206...
Connected to 216.58.217.206. 
Escape character is '^]'.
GET / HTTP/1.1
HOST: example.com

HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8
Content-Length: 1561
Date: Mon, 21 Nov 2016 19:57:18 GMT
....

Примечание: вам нужно дважды нажать <enter> после заголовка «HOST», он ищет \r\n\r\n.

person Tim    schedule 21.11.2016
comment
Я думал, что файл hosts предназначен для того, чтобы я мог протестировать конфигурацию веб-сервера, фактически не владея доменом? Я обнаружил кое-что странное. Когда я пытаюсь просмотреть веб-сайт на своем телефоне, он работает! На своем рабочем столе я очистил кеш браузера, но он все еще не работал. Затем я включил VPN, и мой сайт заработал на моем компьютере! Я весьма озадачен. Есть ли у моего модема кеш или у моего интернет-провайдера? - person Gruzzles; 21.11.2016
comment
Спасибо @varlogtim за ваш вдумчивый ансер. Я узнал немного больше о своей проблеме и задал новый вопрос: stackoverflow.com/questions/40729135/ - person Gruzzles; 21.11.2016

Это не работало, потому что серверы имен DNS, установленные на моем маршрутизаторе, не были обновлены, но серверы имен для моего телефона использовали IPv6 и были обновлены, а моя VPN была обновлена, что привело к моему недоумению.

person Gruzzles    schedule 22.11.2016