Настройка 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
В любом случае, эти настройки сделали это возможным: