gpt4 book ai didi

node.js - heroku 如何将请求路由到正确的端口?

转载 作者:搜寻专家 更新时间:2023-10-31 23:17:43 25 4
gpt4 key购买 nike

在阅读了几个 Heroku NodeJS 教程后,我了解到 Heroku 通过“process.env.PORT”环境变量为您的应用程序分配一个随机端口,以及让您的应用程序在本地和在本地运行的正确方法heroku是设置端口等于

process.env.PORT || 8000

,当您在本地主机上运行时,8000 可以替换为您希望应用程序在其上运行的任何端口。

这是它在我的应用程序中的样子(“服务器”是 http 服务器,当前正在提供静态 HTML 文件):

server.listen(process.env.PORT || 8000)

当我在 heroku 上运行该应用程序并检查日志时,我会看到为 process.env.PORT 分配了一个端口号……之前的部署是 29074。

当我在本地运行应用程序时,我通过 url http://localhost:8000 进行连接.如果我不包含端口号,则页面不会加载(无法找到页面)。

那么,为什么我连接到 heroku 上的页面时不必在 URL 中指定端口 29074?我可以访问 url https://limitless-brook-9339.herokuapp.com/没有指定端口号,它加载正常。事实上,如果我尝试将 URL 中的端口显式设置为 :29074,它会显示“此网页不可用”。

最佳答案

请记住,Heroku 可能在幕后做一些路由。如果收到请求,它不一定会影响您的应用程序(例如,运行 Express)。它很可能会攻击 nginx 之类的东西,它可以根据主机名进行自己的内部路由。

声明 server.listen(process.env.PORT || 8000) 正在指定端口 - 它是 process.env.PORT 的值(通过设置 PORT=80 (或 PORT=443) 在命令行上)或使用端口 8000 作为默认值。

关于node.js - heroku 如何将请求路由到正确的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com