У меня виртуальная машина Ubuntu 18.04, работающая на Windows 7. Виртуальная машина настроена на мостовой адаптер из виртуальной коробки. Он может подключаться к сети, иметь такую же IP-схему, что и IP-адрес в локальной сети, и может пинговаться из Windows.

Образец сайта nginx (info.php) доступен в браузере с помощью IP_address/info.php.

У меня есть служба ngrest, созданная на этой странице, и она отлично работает в браузере виртуальной машины, используя localhost:9098/pets/getPets .

Большая страница внутри ВМ Однако эта служба недоступна из Windows. Я использую IP_address:9098/pets/getPets . Может кто-нибудь показать мне, как это можно настроить? Благодарю.

1 ответ1

0

Я переключился на pistache (показанную здесь) после того, как не смог найти решение. Опять же, пример сервиса hello недоступен с другого компьютера. Очевидно, что проблема системная. Мой друг предлагает заглянуть в настройки брандмауэра. Наконец, эти две команды помогают сузить проблему:

sudo ufw status
sudo netstat -tulpn

После установки Lemp стек, ufw допускает только входящие запросы на порт 80

Nginx HTTP                 ALLOW       Anywhere
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Вот почему обе службы из pistache и ngrest недоступны с других компьютеров, в то время как пример сайта NginX info.php есть. Порты, используемые этими службами, могут быть добавлены с помощью:

sudo ufw allow 9080
sudo ufw allow 9098

Открытые порты отображаются при повторном запуске sudo ufw status . Однако служба ngrest по-прежнему недоступна. Запуск sudo netstat -tulpn показывает:

NetStat

На рисунке видно, что NginX подключен к порту 81 пока пытается найти решение. Образцы сайтов NginX и сервисы hello (pistache) привязаны к IP-адресу 0.0.0.0 , который отличается от IP-адреса службы ngrest . Погуглив вокруг меня здесь . По-видимому, ngrest не упомянул, как включить службу для внешних компьютеров в своем руководстве. Спецификации находятся здесь . NGREST_SERVER_IP используется для указания другого IP-адреса. Сервис повторно активируется с помощью:

NGREST_SERVER_IP=0.0.0.0 ngrest

Теперь сервис ngrest доступен снаружи. Эта функция, очевидно, исходит из этого запроса. NGREST_SERVER_PORT - еще одна полезная функция. Таким образом, сервис ngrest можно назвать так:

NGREST_SERVER_IP=0.0.0.0 NGREST_SERVER_PORT=9090 ngrest

В любом случае, эти настройки сделали это возможным:

настройки

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .