Подтвердить что ты не робот

Удаленная отладка моего приложения node, размещенного на AWS

Я хотел бы подключиться к моему серверу node, запущенному в режиме отладки в AWS (node --debug app.js) с моей машины разработки, и иметь возможность удаленно отлаживать мое приложение.

Два вопроса:

  • Могу ли я сделать это с помощью node-inspector? Я бы хотел, но node -инспектор не смог установить на моем AWS-экземпляре.

  • Любые альтернативы, которые позволят мне сделать это?

4b9b3361

Ответ 1

И с помощью ответа tepez для меня работало следующее (Node Inspector v0.12.2):

На моей машине:

ssh -L 8080:127.0.0.1:8080 <username>@<host> -N

На удаленном сервере:

node-debug --cli <appname>

И введите в браузере следующий адрес:

127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858

Ответ 2

Перенаправить удаленный порт отладчика с помощью ssh из вашей машины

ssh -L 5858:127.0.0.1:5858 [email protected]

И теперь вы можете запустить node-inspector, как если бы отладчик работал локально.

Ответ 3

Еще один вариант использования 0.0.0.0 для прослушивания запроса извне:

node-debug --web-host=0.0.0.0 --cli app.js

и посетите этот адрес для отладки:

http://<the-domain>:8080/?port=5858

было бы лучше, если бы HTTP/2 был доступен, так как есть много небольших файлов.

Ответ 4

Также вы можете указать аргумент --web-host.

node-inspector --web-host host.amazonaws.com

Ответ 5

Позвольте мне представить альтернативное использование node --inspect. У меня была такая же потребность, хотя в среде Windows, я считаю, это должно работать для вас.

Удаленный компьютер (протестирован с Node 6.10.2, Windows Server 2012)

node --inspect=0.0.0.0:9229 <appname>.js

Локальный компьютер (протестирован с Win 10, Chrome 60.0.3112.90)

В Chrome DevTools - щелкните вертикальное меню с многоточием в правом верхнем углу:

  1. Перейти к: Дополнительные инструменты → Удаленные устройства
  2. Под Сетевыми целями нажмите Добавить адрес
  3. Введите <remote-ip>:9229
  4. Как только вы введете адрес и подключитесь к удаленной цели, вы увидите значок Node.JS в левом верхнем углу DevTools
  5. Нажмите NodeJS Logo, чтобы запустить DevTools Node Debugger.

Скриншоты шагов 1,3,4 ниже.

DevTools Menu

Network Targets Remote Target Connected

Ответ 6

Вы также можете использовать node --inspect на удаленном компьютере.

  • Запустите node с помощью node --inspect myapp.js
  • Тогда локально ssh -L 9229:127.0.0.1:9229 [email protected] -N
  • Найдите строку в заголовке журнала и скопируйте ее chrome-devtools://devtools/remote/serve_file/@60cd6e859b9ff284980/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/bef2ae68
  • Вставьте его в свой браузер Chrome

Наслаждайтесь:)

Если вы используете pm2, просто добавьте это на свой файл system.js

"apps": [{
    "name": "myapp",
    "script": "index.js",
    "node_args": ["--inspect"],
...

Ответ 7

Это то, что сработало для меня:

  • Запустите node -инспектор на сервере.
  • Запустите debugee на удаленном сервере с флагом --debug.
  • Обратите внимание на порт, который прослушивает отладчик, т.е. Debugger listening on port DEBUG_PORT.
  • Создайте туннель ssh для порта 8080, а не DEBUG_PORT, как предполагает ответ Андрея Сидорова.
  • Откройте SERVER_API:8080/debug?ws=127.0.0.1:8080&port=DEBUG_PORT в браузере voilà.

Node Инспектор v0.10.1

Ответ 8

Permission denied (publickey)

Что делать с открытым/закрытым ключом?