远程debuggingAWS上托pipe的节点应用程序
我想从我的开发机器上连接到AWS上的节点服务器(节点–debug app.js)上以debugging模式运行,并且能够远程debugging我的应用程序。
两个问题:
-
我可以用节点检查器做到这一点吗? 我希望我能,但节点检查器无法安装在我的AWS实例。
-
任何替代scheme,将允许我这样做?
在tepez的回答的帮助下,下面的工作对我来说(Node Inspector v0.12.2):
在我的机器上:
ssh -L 8080:127.0.0.1:8080 <username>@<host> -N
在远程服务器上:
node-debug --cli <appname>
并在浏览器中input以下地址:
127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858
使用ssh从您的开发机器转发远程debugging器端口
ssh -L 5858:127.0.0.1:5858 ubuntu@some.ec2.host.com
现在,您可以像debugging器在本地运行一样启动node-inspector
器。
还有一个select是使用0.0.0.0
来听取外部的请求:
node-debug --web-host=0.0.0.0 --cli app.js
并访问这个地址进行debugging:
http://<the-domain>:8080/?port=5858
如果HTTP / 2是可用的,因为有很多小文件。
你也可以指定--web-host
参数。
node-inspector --web-host host.amazonaws.com
这对我来说是有效的:
- 在服务器上启动节点检查器。
- 使用
--debug
标志启动远程服务器上的--debug
。 - 注意debugging器监听的端口,即
Debugger listening on port DEBUG_PORT
消息。 - 创build一个
8080
端口的ssh隧道,而不是像Andrey Sidorov的答案所示的DEBUG_PORT
。 - 在浏览器中打开
SERVER_API:8080/debug?ws=127.0.0.1:8080&port=DEBUG_PORT
。
节点检查器v0.10.1
您也可以在远程机器上使用node --inspect
。
- 用
node --inspect myapp.js
启动节点 - 然后在本地
ssh -L 9229:127.0.0.1:9229 myuser@myserver -N
- 在日志头中search这样的string并将其复制到
chrome-devtools://devtools/remote/serve_file/@60cd6e859b9ff284980/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/bef2ae68
- 将其粘贴到您的Chrome浏览器中
请享用 :)
如果您正在使用pm2
只需在您的pm2
添加此项
"apps": [{ "name": "myapp", "script": "index.js", "node_args": ["--inspect"], ...
允许我使用node --inspect
来提供一个替代scheme。 我有同样的需求,虽然在Windows环境中,我相信这应该为你工作。
远程机器 (通过Node 6.10.2,Windows Server 2012testing)
node --inspect=0.0.0.0:9229 <appname>.js
本地计算机 (使用Win 10,Chrome 60.0.3112.90testing)
在Chrome DevTools中 – 单击右上angular的垂直省略号菜单 :
- 转到:更多工具 – >远程设备
- 在networking目标下单击添加地址
- input
<remote-ip>:9229
- input地址并连接远程目标后,您将看到DevTools左上方的Node.JS图标
- 点击NodeJS Logo启动DevTools Node Debugger
下面的步骤1,3,4的屏幕截图。