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

Веб-сервер недоступен для других систем в локальной сети

Я пытаюсь протестировать веб-сайт, обслуживаемый через nginx на моем Mac. Все работает нормально с доступом к серверу на том же Mac, но когда я пытаюсь получить к нему доступ с пары компьютеров Windows в той же глобальной сети через IP-адрес Mac, я никогда не могу пойти дальше, чем «Эта страница не может быть отображена». Я почти уверен в этом используемый работать…

Как использование IE, так и Telnet на машинах Windows, чтобы попытаться добраться до моего сервера, терпят неудачу. Однако, если я включу общий доступ к Windows на панели «Сеть» в системных настройках OS X, я получу доступ к файловой системе, поэтому я знаю, что дело не в том, что весь мой Mac недоступен.

Я подумал, что это может быть брандмауэр, но я проверил и подтвердил, что на моем маршрутизаторе Wi-Fi не включен брандмауэр. В OS X есть брандмауэр, но в nginx есть дыра, и полное отключение брандмауэра OS X в любом случае ничего не помогает.

На моем Mac я вижу, что ничего не добавляется ни к ошибкам nginx, ни к журналам доступа, когда я пытаюсь получить доступ к серверу с компьютеров Windows, поэтому я предполагаю, что все, что не удается, происходит на сетевом уровне.

Я новичок в нетворкинге и не знаю, что попробовать дальше. Будем признательны за любые советы о том, что попробовать дальше.

Вы можете проверить, прослушивает ли сервер все доступные IP-адреса, используя команду NETSTAT.

Вы хотите убедиться, что что-то прослушивает либо IP-адрес 0.0.0.0 (что означает все доступные IP-адреса), либо IP-адрес вашей сети.

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN

Если вы не видите ничего подобного, вам, вероятно, нужно проверить, что nginx настроен для привязки ко всем доступным IP-адресам. Для этого вам нужно посмотреть файлы конфигурации, которые, скорее всего, будут называться nginx.conf (мой находится в / opt / nginx / conf, ваш может быть другим), а также файл sites.conf (часто vhosts хранится здесь).

В одном из этих файлов у вас должен быть серверный раздел, заключенный в фигурные скобки. Внутри вы должны увидеть директиву listen. Надеюсь, он должен сказать что-то вроде

listen 80;

Если нет, не могли бы вы опубликовать конфигурации, чтобы мы могли их увидеть?

Если вы проверили два вышеуказанных пункта, и у вас есть что-то, что слушает порт 80, а nginx настроен на прослушивание запросов, то нам придется провести дополнительную отладку!

Я не специалист по nginx, но веб-сервер может прослушивать только интерфейс обратной петли (127.0.0.1), а не ваш интерфейс Ethernet. Попробуйте прослушать *, чтобы соответствовать всем интерфейсам.

Больше информации здесь: http://wiki.nginx.org/HttpCoreModule#listen