다음을 통해 공유


Nginx를 사용하여 ASP.NET Core Blazor WebAssembly 호스트 및 배포

비고

이 기사는 최신 버전이 아닙니다. 현재 릴리스는 이 문서의 .NET 10 버전을 참조하세요.

경고

이 버전의 ASP.NET Core는 더 이상 지원되지 않습니다. 자세한 내용은 .NET 및 .NET Core 지원 정책을 참조하세요. 현재 릴리스에 대해서는 본 기사의 .NET 9 버전을 참조하십시오.

이 문서에서는 Blazor WebAssembly를 사용하여 호스트하고 배포 하는 방법을 설명합니다.

다음 nginx.conf 파일은 디스크에서 해당 파일을 찾을 수 없을 때마다 파일을 보내 index.html 도록 Nginx를 구성하는 방법을 보여 주도록 간소화되었습니다.

events { }
http {
    server {
        listen 80;

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

NGINX 버스트 속도 제한을limit_req 설정하면 limit_req_zoneBlazor 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 Core Blazor 앱 기본 경로를 참조하세요.

다음 변경 내용에 대해 ASP.NET Core SignalR 앱의 지침을 따릅니다.

  • 이 설정은 proxy_buffering off; 앱 클라이언트-서버 상호 작용과 관련이 없는 SSE(Server-Sent 이벤트)에 적용되므로 프록시 버퍼링(Blazor)에 대한 구성을 제거합니다.

  • location 경로를 /hubroute (location /hubroute { ... })에서 하위 앱 경로 /{PATH} (location /{PATH} { ... })로 변경합니다. 여기서 {PATH} 자리 표시자는 하위 앱 경로를 나타냅니다.

    다음 예제에서는 루트 경로 /의 요청에 응답하는 앱에 대한 서버를 구성합니다.

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

    다음 예는 /blazor의 하위 앱 경로를 구성합니다.

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

추가 리소스