次の方法で共有


Nginx を使用 ASP.NET Core Blazor WebAssembly をホストしてデプロイする

これは、この記事の最新バージョンではありません。 現在のリリースについては、この記事の .NET 9 バージョンを参照してください。

警告

このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、 .NET および .NET Core サポート ポリシーを参照してください。 現在のリリースについては、この記事の .NET 9 バージョンを参照してください。

重要

この情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。

現在のリリースについては、この記事の .NET 9 バージョンを参照してください。

この記事では、Nginx を使用してBlazor WebAssemblyをホストおよびデプロイする方法について説明します。

以下に示す nginx.conf ファイルは、Nginx が対応するファイルをディスク上で見つけられないときに index.html ファイルを送信するよう Nginx を構成する方法を示すために、簡略化されています。

events { }
http {
    server {
        listen 80;

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

limit_reqlimit_req_zoneNGINX バースト レートの制限を設定する場合、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 Web サーバーの構成に関する詳細については、「Creating NGINX Plus and NGINX Configuration Files」 (NGINX Plus と NGINX 構成ファイルの作成) を参照してください。

Linux でのホストされた展開 (Nginx)

ForwardedHeadersOptions を使用して、X-Forwarded-For および X-Forwarded-Proto ヘッダーを転送するようアプリを構成するには、プロキシ サーバーとロード バランサーで動作するように ASP.NET Core を構成する のガイダンスに従ってください。

サブアプリ パスの構成など、アプリのベース パスの設定の詳細については、「 ASP.NET Core Blazor アプリのベース パス」を参照してください。

ASP.NET Core SignalR アプリ」のガイダンスに従って、次のように変更します。

  • プロキシバッファリング()の構成を削除します。この設定はにのみ適用され、アプリのクライアントとサーバー間の通信には関係ないためです。

  • location パスを /hubroute (location /hubroute { ... }) からサブアプリパス /{PATH} (location /{PATH} { ... }) に変更します。ここで、{PATH} プレースホルダーはサブアプリ パスです。

    次の例では、ルート パス / で要求に応答するアプリのサーバーを構成します。

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

    次の例では、/blazor のサブアプリ パスを次のように構成します。

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

その他のリソース