如何在 heroku 上远程调试 node.js 应用程序?
Posted
技术标签:
【中文标题】如何在 heroku 上远程调试 node.js 应用程序?【英文标题】:How to remote debug a node.js app on heroku? 【发布时间】:2017-01-05 23:48:12 【问题描述】:我目前正在构建一个 node.js 聊天机器人,然后我将其部署在 heroku 上。 该应用程序使用 webhook,该 webhook 必须位于服务器可以访问的公共 URL。因此,在我的机器上本地运行服务器将无法正常工作。有没有办法远程调试我的应用程序?有什么建议吗?
【问题讨论】:
【参考方案1】:我会考虑使用一种工具将公共 URL 连接到本地运行的应用实例。
选项 1:ngrok
一个简单的方法是ngrok
选项 2:ssh 反向隧道
如果您可以访问任何具有 ssh 和管理员权限的面向 Internet 的服务器以启用 GatewayPorts yes
sshd 配置,则可以使用 ssh 远程隧道来实现。例如:
ssh -n -R 8080:localhost:3000 myserver.example.com
将允许发送到 http://myserver.example.com:8080
的 webhook 隧道连接到您在端口 3000 上侦听的本地应用。
More details on ssh tunneling can be found here
【讨论】:
【参考方案2】:您确实可以使用ngrok 等免费代理服务在本地计算机上调试 webhook。
如果你想在 Heroku 上调试它,你可以使用 heroku logs --tail
查看你的实时日志或使用存储日志的插件服务。
【讨论】:
【参考方案3】:找到了一个更简单的解决方案。
安装LogDNA
插件,然后运行应用程序并查看错误堆栈跟踪。
那么当你看到错误以及它发生在哪一行时,很容易找到问题。
【讨论】:
【参考方案4】:使用 Papertrail 插件或者也可以使用这里提到的日志记录选项https://devcenter.heroku.com/articles/logging。
【讨论】:
欢迎提供解决方案链接,但请确保您的答案在没有它的情况下有用:add context around the link 这样您的其他用户就会知道它是什么以及为什么会出现,然后引用最相关的您链接到的页面的一部分,以防目标页面不可用。 Answers that are little more than a link may be deleted.以上是关于如何在 heroku 上远程调试 node.js 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
在Visual Studio上开发Node.js程序——远程调试及发布到Azure
如何在 Heroku 上使用 Node.js 通信 Web 和 Worker dynos?
Node.js - 在 Heroku 上使用 MongoHQ 连接到 MongoDB