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

 大大炮 发布于 2023-02-04 15:02

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

两个问题:

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

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

R. Itzi.. 40

在tepez的答案的帮助下,以下对我有用(Node Inspector v0.12.2):

在我的机器上:

ssh -L 8080:127.0.0.1:8080 @ -N

在远程服务器上:

node-debug --cli 

并在浏览器中输入以下地址:

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

感谢您显示URL以及SSH命令.如果没有它,很容易混淆.对我来说很棒! (4认同)


Andrey Sidor.. 23

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

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

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

7 个回答
  • 您也可以node --inspect在远程计算机中使用.

      使用启动节点 node --inspect myapp.js

      然后在当地 ssh -L 9229:127.0.0.1:9229 myuser@myserver -N

      在日志头处搜索这样的字符串并复制它 chrome-devtools://devtools/remote/serve_file/@60cd6e859b9ff284980/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/bef2ae68

      将其粘贴到Chrome浏览器中

    请享用 :)

    如果您正在使用,pm2只需在您的ecosystem.js上添加此项

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

    2023-02-04 15:04 回答
  • 还有一个0.0.0.0用于收听外部请求的选项:

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

    并访问此地址进行调试:

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

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

    2023-02-04 15:04 回答
  • 您也可以指定--web-host参数.

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

    2023-02-04 15:04 回答
  • 使用dev机器中的ssh转发远程调试器端口

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

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

    2023-02-04 15:04 回答
  • 请允许我提供替代方案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中 - 单击右上角的垂直省略号菜单:

      转到:更多工具 - >远程设备

      网络目标下单击添加地址

      输入 <remote-ip>:9229

      输入地址并连接远程目标后,您将在DevTools的左上角看到Node.JS图标

      单击NodeJS徽标以启动DevTools Node Debugger

    下面的步骤1,3,4的屏幕截图.

    DevTools菜单

    网络目标 远程目标已连接

    2023-02-04 15:05 回答
  • 这对我有用:

      在服务器上启动node-inspector.

      --debug旗帜启动远程服务器上的debugee.

      请注意调试器侦听的端口,即Debugger listening on port DEBUG_PORT消息.

      为端口创建一个ssh隧道8080,而不是DEBUG_PORT像Andrey Sidorov的回答所暗示的那样.

      SERVER_API:8080/debug?ws=127.0.0.1:8080&port=DEBUG_PORT在浏览器中打开一个voilà.

    Node Inspector v0.10.1

    2023-02-04 15:05 回答
  • 在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
    

    2023-02-04 15:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有