注意 – 这纯粹是为了理解,我不打算永久地在我的笔记本电脑上托管玩具webapp.
这是我的困惑 – 我的node.js应用程序是一个WEBSERVER,为什么我需要另一台服务器(即由heroku,aws等提供的服务器)来托管我的应用程序?我觉得我错过了什么……
解决方法
如果需要,您可以设置所谓的端口转发规则,告诉路由器您希望端口80上的任何传入连接(这是浏览器的默认HTTP端口)直接路由到您的macbook pro上家庭网络.通常,您可以通过在家庭网络上发现Macbook pro的IP地址来实现这一点,并将端口转发规则设置为该IP地址.端口转发规则通常通过某种基于Web的管理员用户界面进行配置,您可以在Web浏览器中使用该界面.您必须查看特定路由器的手册,以了解如何最好地连接到它并进行配置.
除非您将macbook pro设置为具有静态IP地址,否则其IP地址将由路由器动态分配.它可能会在一段时间内保持不变,但可能会随着时间的推移而改变.
完成此操作后,您需要发现家庭网络连接的IP地址.这可能也会动态分配,但也应保持一段时间.您知道这个IP地址,然后浏览器上的浏览器可以通过URL http://xxx.yyy.zzzwhere连接到您的Web服务器xxx.yyy.zzz是您的家庭网络的IP地址,如从interwebs.
如果您希望能够使用普通域名(例如http://mysampledomain.com)连接到该域名,那么您可以支付一些动态DNS服务,这将为您的动态IP地址设置域名,尽管不建议长期使用.除了可能违反ISP的规则外,它不是一个特别可扩展或强大的解决方案.从长远来看,迁移到托管服务提供商会更有意义.
Here’s my confusion – my node.js application IS A WEBSERVER,why do I
need another server (i.e. one provided by heroku,aws,etc) to host my
app? I feel like I’m missing something…
您不需要其他Web服务器.如果您要找到托管服务提供商,您将使用擅长托管node.js服务器的托管服务提供商.对于那些类型的提供者,可能不会有另一个Web服务器 – 您的node.js服务器将是唯一涉及的服务器.他们可能拥有用于使多租户环境工作的代理或负载均衡器,但除了确保遵循正确的安装说明以使您的node.js服务器在其中正常运行之外,您应该在很大程度上不了解其他内容.环境.