远程调试我在AWS上托管的节点应用程序

时间:2014-01-11 01:28:55

标签: node.js debugging amazon-web-services

我想从我的开发机器连接到我在AWS(node -debug app.js)上以调试模式运行的节点服务器,并能够远程调试我的应用程序。

两个问题:

  • 我可以使用node-inspector执行此操作吗?我希望可以,但是node-inspector无法在我的AWS实例上安装。

  • 任何可以让我这样做的替代方案?

7 个答案:

答案 0 :(得分:40)

tepez's回答的帮助下,以下内容对我有用(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

答案 1 :(得分:23)

使用dev机器中的ssh转发远程调试器端口

ssh -L 5858:127.0.0.1:5858 ubuntu@some.ec2.host.com

现在您可以启动node-inspector,就像调试器在本地运行一样。

答案 2 :(得分:12)

使用0.0.0.0收听来自外部的请求的另一个选项:

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

并访问此地址进行调试:

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

如果HTTP / 2可用,那会更好,因为有很多小文件。

答案 3 :(得分:9)

您也可以指定--web-host参数。

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

答案 4 :(得分:9)

请允许我使用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. 转到:更多工具 - &gt;远程设备
  2. 网络目标下点击添加地址
  3. 输入<remote-ip>:9229
  4. 输入地址并连接远程目标后,您将看到DevTools左上角的Node.JS图标
  5. 单击NodeJS徽标以启动DevTools Node Debugger
  6. 下面的步骤1,3,4的屏幕截图。

    DevTools Menu

    Network Targets Remote Target Connected

答案 5 :(得分:7)

您也可以在远程计算机中使用node --inspect

  1. 使用node --inspect myapp.js
  2. 启动您的节点
  3. 然后在本地ssh -L 9229:127.0.0.1:9229 myuser@myserver -N
  4. 在日志头中搜索这样的字符串并复制它 chrome-devtools://devtools/remote/serve_file/@60cd6e859b9ff284980/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/bef2ae68
  5. 将其粘贴到Chrome浏览器中
  6. 享受:)

    如果您正在使用pm2,请在您的ecosystem.js

    上添加此内容
    "apps": [{
        "name": "myapp",
        "script": "index.js",
        "node_args": ["--inspect"],
    ...
    

答案 6 :(得分:5)

这对我有用:

  1. 在服务器上启动node-inspector。
  2. 使用--debug标志在远程服务器上启动debugee。
  3. 请注意调试程序侦听的端口,即Debugger listening on port DEBUG_PORT消息。
  4. 为端口8080创建一个ssh隧道,而不是像Andrey Sidorov的回答所暗示的DEBUG_PORT
  5. 在浏览器中打开SERVER_API:8080/debug?ws=127.0.0.1:8080&port=DEBUG_PORT vo。
  6. Node Inspector v0.10.1