비고
이 문서의 최신 버전은 아닙니다. 현재 릴리스는 이 문서의 .NET 10 버전을 참조하세요.
이 문서에서는 Blazor WebAssembly를 사용하여 호스트하고 배포 하는 방법을 설명합니다.
Apache에 Blazor WebAssembly 앱을 배포하려면 다음을 수행합니다.
Apache 구성 파일을 만듭니다. 다음 예제는 단순화된 구성 파일입니다(blazorapp.config).
<VirtualHost *:80>
ServerName www.example.com
ServerAlias *.example.com
DocumentRoot "/var/www/blazorapp"
ErrorDocument 404 /index.html
AddType application/wasm .wasm
<Directory "/var/www/blazorapp">
Options -Indexes
AllowOverride None
</Directory>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/octet-stream
AddOutputFilterByType DEFLATE application/wasm
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>
ErrorLog /var/log/httpd/blazorapp-error.log
CustomLog /var/log/httpd/blazorapp-access.log common
</VirtualHost>
Apache 구성 파일을 만듭니다. 다음 예제는 단순화된 구성 파일입니다(blazorapp.config).
<VirtualHost *:80>
ServerName www.example.com
ServerAlias *.example.com
DocumentRoot "/var/www/blazorapp"
ErrorDocument 404 /index.html
AddType application/wasm .wasm
AddType application/octet-stream .dll
<Directory "/var/www/blazorapp">
Options -Indexes
AllowOverride None
</Directory>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/octet-stream
AddOutputFilterByType DEFLATE application/wasm
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>
ErrorLog /var/log/httpd/blazorapp-error.log
CustomLog /var/log/httpd/blazorapp-access.log common
</VirtualHost>
Apache 구성 파일을 /etc/httpd/conf.d/ 디렉터리에 배치합니다.
앱의 게시된 자산(/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot: 여기서 {TARGET FRAMEWORK}은 대상 프레임워크임)을 /var/www/blazorapp 디렉터리(구성 파일에서 DocumentRoot에 지정된 위치)에 배치합니다.
Apache 서비스를 다시 시작합니다.
자세한 내용은 mod_mime 및 mod_deflate참조하세요.
Linux에서 호스트된 배포(Apache)
ForwardedHeadersOptions를 사용하여 헤더 X-Forwarded-For 및 X-Forwarded-Proto를 전달하도록 앱을 구성하고, 프록시 서버와 부하 분산 장치에서 ASP.NET Core를 작동하도록 구성 지침을 따르십시오.
하위 앱 경로 구성을 포함하여 앱의 기본 경로를 설정하는 방법에 대한 자세한 내용은 ASP.NET Core Blazor 앱 기본 경로를 참조하세요.
다음 예제에서는 루트 URL(하위 앱 경로 없음)에서 앱을 호스트합니다.
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://localhost:5000/
ProxyPassReverse / http://localhost:5000/
ProxyPassMatch ^/_blazor/(.*) http://localhost:5000/_blazor/$1
ProxyPass /_blazor ws://localhost:5000/_blazor
ServerName www.example.com
ServerAlias *.example.com
ErrorLog ${APACHE_LOG_DIR}helloapp-error.log
CustomLog ${APACHE_LOG_DIR}helloapp-access.log common
</VirtualHost>
앱을 하위 앱 경로 {PATH}에서 호스트하도록 서버를 구성하려면, 다음 항목에서 {PATH}가 하위 앱 경로를 나타냅니다.
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://localhost:5000/{PATH}
ProxyPassReverse / http://localhost:5000/{PATH}
ProxyPassMatch ^/_blazor/(.*) http://localhost:5000/{PATH}/_blazor/$1
ProxyPass /_blazor ws://localhost:5000/{PATH}/_blazor
ServerName www.example.com
ServerAlias *.example.com
ErrorLog ${APACHE_LOG_DIR}helloapp-error.log
CustomLog ${APACHE_LOG_DIR}helloapp-access.log common
</VirtualHost>
요청에 /blazor응답하는 앱의 경우:
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://localhost:5000/blazor
ProxyPassReverse / http://localhost:5000/blazor
ProxyPassMatch ^/_blazor/(.*) http://localhost:5000/blazor/_blazor/$1
ProxyPass /_blazor ws://localhost:5000/blazor/_blazor
ServerName www.example.com
ServerAlias *.example.com
ErrorLog ${APACHE_LOG_DIR}helloapp-error.log
CustomLog ${APACHE_LOG_DIR}helloapp-access.log common
</VirtualHost>
추가 리소스
- Apache 설명서
- 비 Microsoft 지원 포럼의 개발자:
ASP.NET Core