Я пытаюсь протестировать веб-сайт, обслуживаемый через 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