You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Lightsail的Debian12 Bitnami LAMP环境部署Blazor Server应用?

部署Blazor Server到Debian 12 Bitnami LAMP实例指南

一、本地发布应用(特殊要求)

  • 发布模式必须选Release,避免调试符号和冗余代码影响性能。
  • 目标运行时指定linux-x64,适配Debian系统:
    dotnet publish -c Release -r linux-x64 --self-contained false
    
    (--self-contained false表示依赖服务器上的.NET Runtime,节省发布包体积)
  • 确认DevExpress配置:项目已引用DevExpress.Blazor NuGet包,且_Host.cshtml中已包含样式和脚本引用:
    <link href="_content/DevExpress.Blazor/dx-blazor.css" rel="stylesheet" />
    <script src="_content/DevExpress.Blazor/dx-blazor.js"></script>
    
  • 生产环境需在Program.cs中添加DevExpress许可证激活代码:
    builder.Services.AddDevExpressBlazor().AddLicenseKey("你的许可证密钥");
    

二、上传发布文件(位置讲究)

Bitnami LAMP实例不建议将Blazor Server应用放在htdocs目录(该目录用于静态Web内容),应创建独立目录:

  1. 在实例上创建应用目录:
    sudo mkdir /opt/bitnami/blazor-app
    sudo chown bitnami:bitnami /opt/bitnami/blazor-app
    
  2. 通过SFTP或SCP将本地发布目录(bin/Release/net9.0/linux-x64/publish)下的所有文件上传到/opt/bitnami/blazor-app。

三、配置后台服务(systemd)

为让应用持续后台运行,创建systemd服务:

  1. 编辑服务文件:
    sudo nano /etc/systemd/system/blazor-app.service
    
  2. 写入以下内容(替换YourApp.dll为实际应用DLL名称):
    [Unit]
    Description=Blazor Server Application
    After=network.target
    
    [Service]
    Type=simple
    User=bitnami
    WorkingDirectory=/opt/bitnami/blazor-app
    ExecStart=/usr/bin/dotnet /opt/bitnami/blazor-app/YourApp.dll
    Restart=always
    RestartSec=10
    Environment=ASPNETCORE_URLS=http://localhost:5000
    Environment=ASPNETCORE_ENVIRONMENT=Production
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl start blazor-app.service
    sudo systemctl enable blazor-app.service
    
  4. 检查服务状态:
    sudo systemctl status blazor-app.service
    

四、Apache反向代理配置(必须涉及)

Bitnami LAMP的Apache是对外提供服务的入口,需配置反向代理将域名请求转发到Blazor Server的本地端口:

  1. 确认Apache已启用必要模块(Bitnami默认已开启,可验证):
    /opt/bitnami/apache/bin/httpd -M | grep -E 'proxy|proxy_http|proxy_wstunnel'
    
    若缺失,执行:
    sudo /opt/bitnami/apache/bin/a2enmod proxy proxy_http proxy_wstunnel
    
  2. 创建虚拟主机配置文件:
    sudo nano /opt/bitnami/apache/conf/vhosts/blazor-app-vhost.conf
    
  3. 写入配置(替换域名和SSL证书路径):
    <VirtualHost *:80>
        ServerName your-domain.com
        ServerAlias www.your-domain.com
        Redirect permanent / https://your-domain.com/
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName your-domain.com
        ServerAlias www.your-domain.com
    
        SSLEngine on
        SSLCertificateFile "/opt/bitnami/apache/conf/ssl/your-cert.crt"
        SSLCertificateKeyFile "/opt/bitnami/apache/conf/ssl/your-key.key"
        SSLCertificateChainFile "/opt/bitnami/apache/conf/ssl/your-ca-bundle.crt"
    
        # 反向代理核心配置
        ProxyPreserveHost On
        ProxyPass / http://localhost:5000/
        ProxyPassReverse / http://localhost:5000/
    
        # Blazor WebSocket支持
        ProxyPass /_blazor/websocket ws://localhost:5000/_blazor/websocket
        ProxyPassReverse /_blazor/websocket ws://localhost:5000/_blazor/websocket
    
        # DevExpress静态资源缓存优化
        <Location /_content/DevExpress.Blazor>
            ExpiresActive On
            ExpiresDefault "access plus 1 year"
        </Location>
    </VirtualHost>
    
  4. 测试配置并重启Apache:
    sudo /opt/bitnami/apache/bin/httpd -t
    sudo /opt/bitnami/ctlscript.sh restart apache
    

五、其他注意事项

  • 防火墙:确保Lightsail实例防火墙开放80、443端口(LAMP实例默认已开放),5000端口无需对外暴露(仅Apache本地访问)。
  • 权限:若应用涉及文件上传,需给对应目录设置bitnami用户读写权限,例如:
    sudo chown -R bitnami:bitnami /opt/bitnami/blazor-app/wwwroot/uploads
    
  • 日志排查:
    • 应用日志:journalctl -u blazor-app.service -f
    • Apache日志:/opt/bitnami/apache/logs/access_log、/opt/bitnami/apache/logs/error_log
  • 性能优化:在Program.cs中调整Blazor Hub配置,例如:
    builder.Services.AddServerSideBlazor()
        .AddHubOptions(options =>
        {
            options.MaximumReceiveMessageSize = 1024 * 1024; // 调整最大消息大小
            options.EnableDetailedErrors = false; // 生产环境关闭详细错误
        });
    
  • 更新应用:重新发布后上传文件到应用目录,执行sudo systemctl restart blazor-app.service即可,无需重启Apache。

内容的提问来源于stack exchange,提问作者David Stowell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:54:50