как сделать сервер node.js недоступным через браузер, но все еще доступным для nginx? - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь запустить мое приложение node.js на порту 3000. Я использую nginx в качестве обратного прокси-сервера для внутренней связи с node.js. Nginx работает нормально, но сервер node.js также доступен, если я пытаюсь запустить его с ip и портом сервера.

Я хочу, чтобы мой сервер node.js не был доступен через браузер, и он только общается через nginx сервер внутри.

Я использую свой сервер узлов на http и https на nginx сервере. И сервер узла, и сервер nginx работают на виртуальной машине с CentOS (Linux). Я хочу, чтобы сервер node.js не был доступен вне виртуальной машины, даже через любой браузер на моем ноутбуке windows, ни из внешнего мира

Может ли кто-нибудь любезно подсказать мне, как этого добиться?

1 Ответ

0 голосов
/ 06 апреля 2020

Я хочу, чтобы мой node.js сервер не был доступен через браузер, и он общается только через nginx сервер внутри.

Я предполагаю, что "через браузер", вы имеете в виду через другие пользователи, а не браузер на localhost. Я также предполагаю, что вы используете встроенный HTTP / S-сервер, напрямую или через что-то вроде Express. Наконец, я предполагаю, что Nginx работает на том же хосте. Если эти предположения не верны, вы должны отредактировать свой вопрос, чтобы уточнить и показать некоторый код.

Теперь, когда вы вызываете .listen() для запуска сервера, есть дополнительные параметры, которые вы можете передать, чтобы установить порт и хост привязки. Например, если бы я сделал это:

server.listen(3000, '127.0.0.1', ...);

Это запустит сервер, который прослушивает порт 3000, но принимает соединения только тогда, когда сделаны из localhost, 127.0.0.1. Это означает, что все на этом компьютере может подключаться к :3000 и делать запросы, но запросы от других хостов не будут работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...