まぁ、当たり前の話だが、apache上でサーバのサブディレクトリとして、blazor server sideを動作させるには、それ用のサービスと、リバースプロキシ設定が必要。
また、WebSocketのためのリライトルールが必要となる。
以下のような感じ。
http://・・・/blazorappをhttp://localhost:5010/ にマッピングする。
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName ・・・
ProxyPass /blazorapp http://localhost:5010/
ProxyPassReverse /blazorapp http://localhost:5010/
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule /blazorapp/(.*) ws://localhost:5010/$1 [P]
</VirtualHost>
※kestrelサービスはlocalhost:5010で口を開けて待っているという想定。(appsettings.jsonにて指定するとかネ。)
[[Service定義ファイル]]
[Unit]
Description=<サービスの説明>
[Service]
WorkingDirectory=/<working directory path>
ExecStart=/usr/bin/dotnet /<dllパス>/<アプリケーション名>.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=<アプリケーション名>
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
[[appsettings.json]]
{
"Kestrel" : {
"EndPoints" : {
"Http" : {
"Url" : "http://localhost:5010"
}
}
},
・・・
}
一応、動作確認済み。でも、Websocketの箇所は少々、自信無し・・・
後で別のサービスを追加して確認してみよう・・・