Настройка nginx/ngrest на виртуальной машине Ubuntu для внешнего доступа

У меня есть виртуальная машина 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 ответ

Я перешел на 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 показывает:

На рисунке показано, что NginX подключен к порту 81 пока ковыряюсь в поиске решения. Примеры сайтов NginX и hello Сервисы (pistache) связаны с 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

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

Другие вопросы по тегам