是否可以调试当前运行的生产节点应用程序?

dje*_*lin 5 debugging production-environment node.js

在本地我通过运行node --debug和使用该node-inspector工具进行调试.node-inspector必须在后台运行,然后我指向我的浏览器(并非所有浏览器都工作; Chrome确实如此)http://127.0.0.1:8080/debug?port=5858进行调试.

问题是我不能在本地运行生产服务器(缺少不属于开发机器的私钥文件),这使得调试某些生产问题非常困难,即使我愿意攻击生产机器.节点检查器仍然可以实现这一点吗?

dje*_*lin 7

是的,您只需要从节点检查器的自述文件中执行以下几个步骤:

  1. node-inspector必须在您尝试调试的节点进程的计算机上运行.所以,你必须能够在那里安装它.
  2. 据推测,您的生产过程并非始于--debug旗帜.你可以发送一个信号来达到这个目的: kill -s USR1 <pid>.(pid可以用类似的东西获得ps aux | grep node.)
  3. 确保端口8080从生产计算机暴露给本地计算机.
  4. 将浏览器指向正常; 你们都成立了.