Назад | Перейти на главную страницу

Что предотвращает доступ Apache к серверу, принадлежащему непривилегированному пользователю?

Существует популярное приложение с открытым исходным кодом, написанное на Javascript Node.js, которое прослушивает порт localhost: 1234 под моей обычной непривилегированной учетной записью.

При подключении с localhost все работает отлично. Идея, однако, состоит в том, чтобы сделать эту услугу доступной для всех в WWW.

Попытки заставить Apache отправлять запросы на этот порт не увенчались успехом. См. Ниже конфигурацию виртуального / прокси-хоста. Запросы передаются, но все, что происходит, - это перечисление содержимого каталога. Подключения к http://example.com:1234 игнорируются. Зачем?

Есть ли способ сделать этот сервер «легитимным» или «доверенным»?

Прежде чем пытаться запустить этот сервер как root или Apache, я лучше поищу здесь ваш совет эксперта.

#
# Potree Plain Protoserver
#
<Location /potree-1234>
  ProxyPass http://localhost:1234
  ProxyPassReverse http://localhost:1234
</Location>
#

NB: Я установил сервер «Hello, world», также основанный на Node.js, и он отлично работает с такими URL-адресами, как:

http://example.com/hello-world

Это довольно просто - приложению предлагается прослушивать только адрес обратной петли, localhost / 127.0.0.1. Поскольку он прослушивает только этот адрес, любые запросы на любых других интерфейсах будут отклонены. Вам необходимо перенастроить приложение для прослушивания нескольких IP-адресов или прослушивания всех.