Как сделать проект NodeJs общедоступным через порт 3000? - PullRequest
1 голос
/ 29 апреля 2019

У меня есть проект NodeJs / Express на облачном сервере Ubuntu на базе Alibaba.

Когда я запускаю проект и получаю доступ с помощью curl localhost:3000 и curl 127.0.0.1:3000, это работает!

Когда я получаю доступ с публичного IP-адреса, например, curl 192.x.x.x:3000 это не работает, хотя я отредактировал конфигурацию в проекте Express в некотором коде так: server.listen(3000,"0.0.0.0") OR server.listen("3000","192.x.x.x").

К вашему сведению, у меня есть Apache на этом сервере. Когда я вхожу в интернет с публичной IP, нет проблем. Что я могу сделать, чтобы решить эту проблему? Заранее спасибо.

PS: 192.x.x.x - мой публичный IP, и он работает с доступом к проекту Apache

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Вам необходимо настроить защитное поле и создать правило для входящих подключений, чтобы разрешить порт 3000. Следуйте этим рекомендациям.

https://www.alibabacloud.com/help/doc-detail/25471.htm

Убедитесь, что вы разрешаете TCP-трафик или весь трафик из всех источников на порт 3000 в качестве входящего правила.

0 голосов
/ 29 апреля 2019

Тот факт, что вы можете получить доступ к своему сервису локально, но не публично, может означать 2 возможные конфигурации:

  1. Сервер, на котором работает ваше приложение, заблокировал порт 3000

  2. Вы не настроили свой сервер для сопоставления порта 80 определенного маршрута с портом 3000

Весьма вероятно, что наиболее важная часть конфигурации вашего серверане было сделано.

...