Node JS работает в Synology Nas, имеет доступ к s sh Windows Powershell, переадресация порта, Linux сценарий запуска (.conf), запускающий приложение. js навсегда - PullRequest
0 голосов
/ 28 марта 2020

Nas, который я использовал дома, установил Node JS v12 из центра пакетов Synology. Поэтому я подумал, что было бы здорово создать веб-сервер Node JS http и изучить себя в области серверной и внешней разработки.

Создайте том1 / path_to_your_app / app. js и разрешите http-серверу прослушивать порт 8080. Затем, с помощью Powershell, я мог войти в систему с помощью [username] и [password] моей учетной записи Synology (admin) в Nas через ip-адрес из дома. Для доступа с помощью s sh в конфигурации / терминале Synology необходимо проверить службу s sh. Номер порта по умолчанию - 22, я изменил его, например, на 8822. Затем из Powershell я теперь мог выполнить команду:

  • s sh username@192.168.1.44 -p8822
  • Далее будет запрошен пароль

Теперь из оболочки Synology я могу перейти к файлу, запустить его и просмотреть в браузере по адресу 192.168.1.44:8080/.

  • cd / volume1 / path_to_your_app /
  • приложение узла. js

Далее я настраиваю переадресацию портов для размещения веб-сервера в сети. В моих настройках роутеров / перенаправление портов ipv4 / мой nas определяется под ip-адресом 192.168.1.44. При настройке приложения Nas я добавил новое правило в соответствии с протоколом TCP на порт 8080. Он работает только для порта 8080 (насколько я мог понять, пока он работает), потому что это экспериментальный порт. Теперь я могу получить доступ к своему веб-серверу по WAN-IP моего маршрутизатора: 8080 /. После выхода из оболочки Synology (Ctrl + c) мое приложение также перестает работать. Я не смог установить навсегда с npm, чтобы сервер работал. Однако с этой страницы я нашел решение. Мне пришлось создать выскочивший файл из оболочки Synology в папке / etc / init.

  • cd / (go обратно на root)
  • cd / etc / init /
  • sudo vi yourappname.conf

  • я скопировал / вставил этот код в файл (.conf) И отредактировал параметры в моей среде:

#!upstart
description "your app name"
start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

env NODE_ENV=development
# Warning: this runs node as root user, which is a security risk
# in many scenarios, but upstart-ing a process as a non-root user
# is outside the scope of this question

chdir /volume1/path_to_your_app/
exec node /volume1/path_to_your_app/app.js >> /var/log/yourappname.log 2>&1

Теперь я могу начать и остановите сценарий запуска вручную из оболочки Synology, и он продолжит работать даже после того, как я выйду из оболочки Synology. Я также вставил в сценарий «chdir / path_to_your_app /» перед «exe c», потому что он меняет каталог, из которого работает Node JS, на каталог из вашего приложения. Я не знаю, что представляет собой угроза безопасности из предупреждения в сценарии.

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