如何在部署过程中控制kestrel端口?

3
在开发过程中,我使用下面标记的launchSettings.json文件来控制http和https端口:

enter image description here

在部署到生产环境时,使用相同的方法来控制kestrel端口是否正确?或者我需要在appsettings.json或任何其他文件中进行任何端口配置吗?
1个回答

3
因为 launchSettings.json 适用于开发环境开发环境和 launchSettings.json
在生产环境中,有几种方法可以设置 Kestrel 端点 的端口。
使用以下方式指定 URL:
  • ASPNETCORE_URLS 环境变量。

  • 使用 dotnet 命令和 --urls 参数。

    dotnet yourdll.dll --urls http://+:2222

  • UseUrls 扩展方法。

  • urls 主机配置键。

如果我们想要设置 Kestrel 端点,请按照以下步骤设置您的项目 appsettings 中的 URL。

Kestrel / EndPoints / Http / Url

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://+:2222"
      }
    }
  }
}

注意:
我建议您添加Nginx或Certbot作为反向代理,而不是设置端口并暴露给外部连接。

那么,在生产部署中,launchSettings.json 中的端口值是无关紧要的吗? - variable
@variable launchSettings.json 适用于开发环境。详见 https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-6.0#development-and-launchsettingsjson - D-Shih
好的,http://+:2222 中的 + 是什么意思? - variable
@variable 主机名、*+并不特殊。任何未被识别为有效IP地址或本地主机的内容都会绑定到所有IPv4和IPv6 IP上。https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-6.0#url-prefixes - D-Shih

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接