共用方式為


使用 Nginx 主機並部署 ASP.NET 核心Blazor WebAssembly

備註

這不是本文的最新版本。 關於目前版本,請參閱 本文的 .NET 10 版本

警告

不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支持原則。 如需目前的版本,請參閱 本文的 .NET 9 版本。

本文說明如何使用 Blazor WebAssembly 來架設與部署

下列 nginx.conf 檔案已簡化,示範如何將 Nginx 設定為每當找不到磁碟上的對應檔案時,便傳送 index.html 檔案。

events { }
http {
    server {
        listen 80;

        location / {
            root      /usr/share/nginx/html;
            try_files $uri $uri/ /index.html =404;
        }
    }
}

使用limit_req設定limit_req_zone時,Blazor WebAssembly應用程式可能需要大量的burst/rate參數值,以容納該應用程式提出的相對較多的要求。 一開始,請至少將值設定為 60:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=60r/s;
    server {
        ...

        location / {
            ...

            limit_req zone=one burst=60 nodelay;
        }
    }
}

如果瀏覽器開發人員工具或網路流量工具指出要求收到 503 - 服務無法使用狀態碼,則請增加此值。

如需生產環境 Nginx 網頁伺服器組態的詳細資訊,請參閱建立 NGINX Plus 和 NGINX 組態檔

Linux 上的主機部署 (Nginx)

使用ForwardedHeadersOptions 設定應用程式以轉送 X-Forwarded-ForX-Forwarded-Proto 標頭,並依照設定 ASP.NET Core 以配合代理伺服器和負載平衡器中的指導。

關於設定應用程式基底路徑(包括子應用路徑設定)的更多資訊,請參見 ASP.NET 核心 Blazor 應用基底路徑

遵循 ASP.NET Core SignalR 應用程式的指導,並進行下列變更:

  • 移除 Proxy 緩衝的組態 (proxy_buffering off;),因為此設定僅適用於伺服器傳送的事件 (SSE),而這與 Blazor 應用程式的用戶端伺服器互動無關。

  • location 路徑從 /hubroute (location /hubroute { ... }) 變更為子應用程式的路徑 /{PATH} (location /{PATH} { ... }),其中 {PATH} 預留位置是子應用程式的路徑。

    下列範例會在根路徑 / 為回應要求的應用程式設定伺服器:

    http {
        server {
            ...
            location / {
                ...
            }
        }
    }
    

    下列範例會設定 /blazor 的子應用程式路徑:

    http {
        server {
            ...
            location /blazor {
                ...
            }
        }
    }
    

其他資源