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

NGINX обслуживает неправильный сайт, непостоянно углубляясь при просмотре местоположения

У меня странная проблема, которую я не понимаю. Я использовал скрипт движка EE для установки блога wordpress на linode, используя NGINX. Это хорошо работало в прошлом.

Сценарий устанавливает VHOST для моего доменного имени (назовем его example.com), и конечный результат в / etc / nginx / sites-available следующий:

Эта проблема :

После настройки DNS в линоде все вроде работало нормально. Example.com открыл блог WordPress без проблем. Однако в моем офисе NGINX вернется к состоянию по умолчанию! ... Итак, дома и повсюду проблем не было, в то время как в некоторых других местах (например, в офисе) NGINX давал мне index.xxx по умолчанию (с сообщением NGINX is working). То же самое, ноутбук, тот же браузер, все то же самое, но разное разрешение, в зависимости от того, в каком физическом месте я нахожусь.

Решение 1:

Заставив NGINX использовать example.com, сделав его default_server в config. Это работает, однако НЕ ДОЛЖНО быть способом ее решения, поскольку NGINX должен улавливать доменное имя и обслуживать правильный сайт. Как еще я могу доверять ему показывать правильные страницы всякий раз, когда я устанавливаю на нем больше сайтов в будущем?

Решение 2:

В файле: etc / nginx / sites-enabeled / default есть следующие строки:

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        # ......

Всякий раз, когда я комментирую вторую директиву listen, а именно:

listen [::]:80 default_server;

И я оставляю первый, тогда NGINX разрешает мое доменное имя ПРАВИЛЬНО, в то время как / etc / nginx / sites-enabled / default ВСЕ ЕЩЕ остается default_server.

Это кажется ПРАВИЛЬНЫМ поведением, я прав?

Вопрос:

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

Ошибка ??? : потому что с исходной конфигурацией (включая вторую директиву) NGINX правильно вращался из моего дома, но НЕ из моего рабочего места (тот же ноутбук, браузер и т. д. и т. д.). Непоследовательный

Неправильная конфигурация ???? : Вы мне скажите, почему это так, когда раньше не разрешалось правильно только с моего рабочего места ...

Я предполагаю, что у вас нет IPv6 listen директива в example.com конфигурации сервера, но использовать IPv6 для доступа к сайту в местах, где он не работает.

В этом случае listen [::]:80 default_server; директива перехватывает запрос, так как для example.com. Если вы удалите эту строку, сервер полностью вернется к IPv4, и все будет работать.

Правильным решением в этом случае было бы добавить listen [::]:80 к example.com серверная строфа.