Linux最简单的部署Blazor

如果你的Blazor Server应用已经启动并显示了监听 localhost 的信息,这意味着你的应用目前只在本地计算机上可用。localhost 是一个特殊的网络主机名,它总是指向本地计算机,因此它不会响应来自其他计算机的网络请求。

要使Blazor Server应用在局域网内可访问,你需要让应用监听所有可用的网络接口,而不仅仅是 localhost。这通常涉及到更改Kestrel服务器的配置,使其监听特定的端口,并且绑定到 0.0.0.0(所有IPv4地址)或 [::](所有IPv6地址)。

以下是如何配置Kestrel以使其在所有网络接口上监听的步骤:

  1. 修改应用配置
    appsettings.json 文件中,你可以添加或修改Kestrel的配置,使其监听所有网络接口:

    {
      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "http://0.0.0.0:5000"
          }
        }
      }
    }
    

    或者,如果你想要同时支持HTTP和HTTPS,可以这样配置:

    {
      "Kestrel": {
        "Endpoints": {
          "Http": {
            "Url": "http://0.0.0.0:5000"
          },
          "Https": {
            "Url": "https://0.0.0.0:5001",
            "Certificate": {
              "Path": "path/to/your/certificate.pfx",
              "Password": "your_certificate_password"
            }
          }
        }
      }
    }
    
  2. 代码配置
    你也可以在代码中配置Kestrel,例如在 Program.csStartup.cs 文件中:

    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Hosting;
    
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }
    
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseKestrel(options =>
                    {
                        options.ListenAnyIP(5000);
                        // 如果需要HTTPS
                        // options.ListenAnyIP(5001, listenOptions =>
                        // {
                        //     listenOptions.UseHttps(httpsOptions =>
                        //     {
                        //         httpsOptions.SslServerCertificate = new X509Certificate2("path/to/your/certificate.pfx", "your_certificate_password");
                        //     });
                        // });
                    })
                    .UseStartup<Startup>();
                });
    }
    
  3. 重新启动应用
    在做了上述更改后,你需要重新启动你的Blazor Server应用。

  4. 配置防火墙规则
    确保你的服务器防火墙允许通过你选择的端口(例如,5000)。

  5. 测试访问
    在局域网内的其他计算机上,使用你的服务器的IP地址和端口号来访问应用。例如,如果你的服务器IP是 192.168.1.100,那么在浏览器中输入 http://192.168.1.100:5000 应该能够访问你的Blazor应用。

请注意,如果你的应用需要处理敏感数据或在公网上可访问,强烈建议使用HTTPS来保护数据传输的安全。此外,确保你的网络配置和防火墙规则正确设置,以防止未授权的访问。

posted @ 2024-11-25 14:13  三台  阅读(270)  评论(0)    收藏  举报