Linux最简单的部署Blazor
如果你的Blazor Server应用已经启动并显示了监听 localhost 的信息,这意味着你的应用目前只在本地计算机上可用。localhost 是一个特殊的网络主机名,它总是指向本地计算机,因此它不会响应来自其他计算机的网络请求。
要使Blazor Server应用在局域网内可访问,你需要让应用监听所有可用的网络接口,而不仅仅是 localhost。这通常涉及到更改Kestrel服务器的配置,使其监听特定的端口,并且绑定到 0.0.0.0(所有IPv4地址)或 [::](所有IPv6地址)。
以下是如何配置Kestrel以使其在所有网络接口上监听的步骤:
-
修改应用配置:
在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" } } } } } -
代码配置:
你也可以在代码中配置Kestrel,例如在Program.cs或Startup.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>(); }); } -
重新启动应用:
在做了上述更改后,你需要重新启动你的Blazor Server应用。 -
配置防火墙规则:
确保你的服务器防火墙允许通过你选择的端口(例如,5000)。 -
测试访问:
在局域网内的其他计算机上,使用你的服务器的IP地址和端口号来访问应用。例如,如果你的服务器IP是192.168.1.100,那么在浏览器中输入http://192.168.1.100:5000应该能够访问你的Blazor应用。
请注意,如果你的应用需要处理敏感数据或在公网上可访问,强烈建议使用HTTPS来保护数据传输的安全。此外,确保你的网络配置和防火墙规则正确设置,以防止未授权的访问。

浙公网安备 33010602011771号