- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>ASP.NET Core]]
* 目次 [#b4257e9b]
#contents
*概要 [#l87168e1]
[[ASP.NET Core]]のWebサーバ・インフラストラクチャについて説明する。
*インプロセス HTTP サーバ [#j2011f31]
[[ASP.NET Core]]アプリは、下記のインプロセス HTTP サーバ実装を使用して実行される。
**Kestrel [#c9a915ba]
***概要 [#w8a20988]
-クロスプラットフォームの HTTP サーバ。
-[[非同期 I/O ライブラリである libuv>C10k problem (C10K問題)]] に基づく。
-[[ASP.NET Core]]プロジェクト テンプレートは既定では Kestrel を使用する。
***機能 [#y8734707]
-HTTPS
-Websocket
-UNIXドメインソケット
***用例 [#z06fdcf1]
-内部ネットワークにのみ公開される場合、単独で使用。
-外部公開する場合、[[IIS]]、nginx、Apache などのリバース プロキシと併用。~
(外部公開する場合、Webサーバのセキュリティ機能が必要になる)
***構成 [#gd9f9281]
-単独~
Startup.Configureメソッド内で、
--クライアントの最大接続数、要求本文の最大サイズ、要求本文の最小レートなどを設定
--app.UseKestrelメソッドや、app.Runメソッドにより設定
-[[併用>#j8e557d9]]
**HTTP.sys [#s1c26c01]
***概要 [#r9bb7a21]
-Windows 専用。
-下記に基づく。
--HTTP.sys カーネル ドライバ
--[[HTTP サーバ API>https://msdn.microsoft.com/library/windows/desktop/aa364510.aspx]]
***機能 [#fa16e537]
-Windows 認証
-ポート共有
-SNI を使用する HTTPS
-直接ファイル伝送
-応答キャッシュ
-WebSocket (Windows 8 以降)
-HTTP/2 over TLS (Windows 10 以降)
***用例 [#d88932d0]
-IIS を使用せず、インターネットに直接サーバを公開するシナリオ
-Kestrel ではサポートされていないシナリオ
--インターネットに公開する場合。
--その他、[[HTTP.sys の機能>#fa16e537]]を使用したい場合。
***構成 [#q02688f2]
-HTTP.sysと[[ASP.NET Core]]のコードと直結させる。
-設定は、以下によって行う。
--Windows Serverの構成
---ファイアウォールのポートを開ける。
---HTTP.sys の構成(レジストリ設定)
---HTTP.sysにx.509 証明書を設定する。
---.NET Framework、[[.NET Core]]などのランタイムをインストール
--[[ASP.NET Core]]アプリの構成~
Startup.Configureメソッド内で、
---・・・などを、
---app.UseHttpSysメソッドや、app.Useメソッドにより設定
**カスタム サーバ [#x7bb81cd]
[[OWIN]](Nowin ベースの IServer 実装)に基づいたカスタム サーバを開発可能。
*一般的なHTTP サーバ [#j8e557d9]
-[[IIS]] と Kestrel~
バース プロキシとして [[IIS]] または IIS Express を使用
-nginx と Kestre~
リバース プロキシとして nginx を使用
-Apache と Kestrel~
リバース プロキシとして Apache を使用
**[[IIS]] [#zdf79f7d]
-[[ASP.NET Core]] モジュール (ANCM)を使用してKestrelと連携する。
-ANCM とは、ネイティブの [[IIS]]モジュールで、
--[[IIS]]パイプラインにフックして、
--トラフィックをバックエンドにリダイレクトする。
--Kestrel は ANCM からのトラフィックをリッスンする。
-参考~
コチラが参考になる。
--[[ASP.NET Coreのデプロイ - 検証 - IIS>ASP.NET Coreのデプロイ#r51d5558]]
--ASP.NET Core モジュール(≒[[IIS]]で [[ASP.NET Core]]をホストする)~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/servers/aspnet-core-module
**nginx [#y192af2f]
[[コチラ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?nginx%E3%81%A7ASP.NET%20Core%E3%82%92%E3%83%9B%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B]]を参照。
**Apache [#t8b57975]
・・・
*[[ASP.NET Coreのデプロイ]] [#s64e696f]
**[[on IIS>ASP.NET Coreのデプロイ#r51d5558]] [#w6650214]
**[[on Linux>ASP.NET Coreのデプロイ#ac95e514]] [#x632aa18]
*参考 [#a0116682]
-ASP.NET vNext で用意されている 3 種類のサーバー - しばやん雑記~
http://blog.shibayan.jp/entry/20141106/1415200465
-.NET Core で ウェブサーバ Kestrel を使ってウェブアプリを作ってみるテスト - Qiita~
https://qiita.com/kent_ocean/items/5f2e791623763a97a9e0
**.NET 開発基盤部会 Wiki [#r5974ce7]
-nginxでASP.NET Coreをホストする~
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?nginx%E3%81%A7ASP.NET%20Core%E3%82%92%E3%83%9B%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B
**Microsoft Docs [#f2dfb53e]
-ASP.NET Core での Web サーバーの実装~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/servers/
--ASP.NET Core モジュール~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/servers/aspnet-core-module
--ASP.NET Core への Kestrel Web サーバーの実装~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/servers/kestrel
--ASP.NET Core での HTTP.sys Web サーバーの実装~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/servers/httpsys
--ASP.NET Core モジュール(≒IIS で ASP.NET Core をホストする)~
https://docs.microsoft.com/ja-jp/aspnet/core/fundamentals/servers/aspnet-core-module
--Nginx 搭載の Linux で ASP.NET Core をホストする~
https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/linux-nginx
--Apache 搭載の Linux で ASP.NET Core をホストする~
https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/linux-apache
**.NET 開発基盤部会 Wiki [#r5974ce7]
-nginxでASP.NET Coreをホストする~
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?nginx%E3%81%A7ASP.NET%20Core%E3%82%92%E3%83%9B%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B
----
Tags: [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET MVC]]