ASPとASP.NETアプリケーションはそのまま 動いた(“Just Worked”) 一つのアプリケーションが大きな変更を必要とした 数えるほどのアプリケーションが統合モードで動作させるために新構 成情報への移行が必要だった
Total Page:16
File Type:pdf, Size:1020Kb
ITライブラリーより (pdf 100冊) http://itlib1.sakura.ne.jp/ 1 他の章は下記をクリックして PDF一覧からお入り下さい。 ITライブラリー (pdf 100冊) http://itlib1.sakura.ne.jp/ 目次番号 270番 Windows Server Enterprise 2008 R2 完全解説 (再入門 ) 全26冊 2 2 3 3 “マイクロソフトの Web サーバー” SQL Reporting Services、SharePoint、OWA の基盤 多くのマイクロソフト製品のHTTP通信エンジン HTML や ASP, ASP.NET コンテンツを ホストするサーバーの役割 IIS5.0 - 普及 そして、厳しい試練 標準でインストール済み 2001年~2002年 CodeRed/Nimda IIS6.0 - 堅固・高速化による再出発 セキュリティ強化、プロセス分離モデル HTTP.SYS の登場による応答性能アップ 4 製品発売日 OS IIS 備考 バージョン バージョン 1997/05/15 Windows NT 4.0 SP3 IIS3.0 1997/12/02 Windows NT 4.0 Option Pack IIS4.0 MTS登場(Microsoft Transaction Server) 2000/03/31 Windows 2000 Professional IIS5.0 COM+登場 Windows 2000 Server 2001/12/31 Windows XP IIS5.1 2003/05/28 Windows Server 2003 IIS6.0 XP SP2 と 2003 SP1で セキュリティ強化 2005/04/24 Windows XP x64 Edition IIS6.0 2007/01/25 Windows Vista IIS7.0 2008/05/06 Windows Server 2008 IIS7.0 Vista SP1と同じレベル Windows Web Server 2008 次期 Ver. Windows 7 IIS7.5 次期 Ver. Windows Server 2008 R2 IIS7.5 Windows Web Server 2008 R2 5 ツール エンド ユーザー サービス Webにおけるクロス Windows Vista モバイル プラットフォーム .NET Client Applications .NET Compact Silverlight (WPF, Windows Forms) Framework 開発者とデザイナー ASP.NET and AJAX Internet Explorer SQL Server のコラボレーション Compact Edition すべてのシナリオ、すべてのユーザー テクノロジー インターネット Applications 開発の加速とWeb 既存のスキルを活用し、 サーバー、インフラストラクチャ 資産の活用 優れたユーザーエクスペ リエンスを創造 そして Windows Server データ Webサーバー Eコマース 統合され、互換性があり、最適化された プラットフォーム群 6 7 7 最初に押さえておきたい大きな変更点 アーキテクチャーの変更 新構成システムの採用 IIS 拡張機能の出荷方法の変更 8 8 プロセスの管理(ヘルス モニタリング、リサイクリング、保護) Web ガーデン アプリケーション プール アプリケーション プール シングル アプリケーション マルチ アプリケーション Inetinfo.exe Svchost.exe w3wp.exe w3wp.exe w3wp.exe FTP WWW/WASM ISAPI 拡張機能 ISAPI 拡張機能 ISAPI 拡張機能 IISAdmin Web アプリケーション Web アプリケーション Web アプリケーション NNTP Web アプリケーション SMTP ISAPI フィルタ ISAPI フィルタ ISAPI フィルタ プロセスの分離 ユーザー モード ユーザー アプリケーションとサーバーの分離 カーネル モード HTTP Requests HTTP.sys Listener Response Cache 9 サービス ホスト Worker Process (W3WP.EXE) (SVCHost.EXE) Windows プロセ Bindings: ス起動サービス http://*:80:site1 (WAS) applicationHost.config World Wide Web Service (W3SVC) HTTP プロトコル ホスト HTTP Listener Channel HTTP.SYS Kernel-Mode Listener Request Response Queue Cache 10 IIS6.0 IIS7.0 HTTP HTTP HTTP HTTP 40↑ Request Response Request Response 基本 basicauth.dll 認証 認証 NTLM authsspi.dll 基本 NTLM 匿名 許可 匿名 ・・・ キャッシュ解決・・ authanon.dll ・ CGI ・・・ CGI cgi.dll 決定 静的 実行ハンドラー 静的コンテンツ ハンドラー コンテンツ static.dll ISAPI ISAPI ・・・ isapi.dll ・・・ キャッシュ更新 レスポンス送信 圧縮 compstat.dll 圧縮 ログ レスポンス送信 ログ loghttp.dll 11 発行 アプリケーション 定常監視と セキュリティ FTPServer 開発 問題診断 FTP Management AnonymousAuthentication .NET Extensibility BasicAuthentication HttpLogging パフォーマンス ISAPIFilter DigestAuthentication StaticCompression ISAPIExtension CustomLogging WindowsAuthentication CGI DynamicCompression UrlAuthorization RequestMonitor FastCGI CertificateMapping HttpTracing ADCertificateMapping ServerSideIncludes ODBCLogging 運用管理 RequestFiltering ASP IPRestriction ASP.Net LoggingLibraries Management Console Management Scripting コアHTTP サーバー コンポーネント Mgmt Service (WMSVC) DirBrowsing HttpRedirect DefaultDoc CustomErrors StaticFile IIS6 Config (Metabase) IIS6 WMI Provider プロセスモデル (Windows Process Activation Service) IIS6Scripting ProcessModel .Net Environment Configuration API IIS6 Management Snap-in 12 ASP.NET ASP.NET Native カスタム ASP.NET 静的 圧縮 キャッシュ ログ 匿名 基本 FastCGI ASP エラー ISAPI トレース フォーム Url承認 13 13 ¥Windows¥Microsoft.NET¥Framework¥vX.X.XXXXX¥config machine.config web.config web.config ¥Windows¥System32¥inetsrv¥config web.config applicationHost.config 他にも ➢IIS5.xとIIS6.0のメタベースがこの •administration.config 新しいメカニズムに移行した。 IISツールUI関連構成、IISユーザー情報 ➢IIS6互換機能を入れれば今まで利用した •redirection.config スクリプト類も動作する。 シェアドコンフィグレーション設定 スキーマ定義ファイル:%windir%¥system32¥inetsrv¥config¥schema¥ IIS_schema.xml, ASPNET_schema.xml , FX_schema.xml 14 IIS.net から随時 http://iis.net/extensions Internet Information Services 7.0 15 15 IIS.net から随時 http://iis.net/extensions Internet Information Services 7.5 16 16 http://www.iis.net/extensions 2009年5月18日時点 Extension CTP/Beta RC RTW FTP Publishing Service 7.5(R2標準) WebDAV 7.5(R2標準) Web Deployment Tool Bit Rate Throttling Live Smooth Streaming Beta Smooth Streaming Web Playlists Windows Media Services 2008 URL Rewrite Module 1.1 Application Request Routing 1.0 Application Request Routing 2.0 Beta Administration Pack(R2標準) Advanced Logging Beta Database Manager IIS 7.0 Manager for Remote Administration Windows PowerShell Snap-in 1.0(R2標準) Web Platform Installer Dynamic IP Restrictions Beta 17 URL Scan 3.1 17 さらなる信頼性 管理のしやすさ よりセキュアに 幅広い選択肢 動的な要求処理、機能向上 簡潔で分散環境に対応した モジュール化、セキュアな 複数のアプリケーション開 したキャッシュメカニズム、 カスタマイズ可能な管理 コンテンツ発行、要求フィ 発基盤のサポートとメディ より強力な問題診断ツール ツール群と開発者向けに容 ルタリング機能によってさ アコンテンツ配信も視野に によって向上した可用性 易なアプリケーション配置 らに向上したサーバー保護 入れた柔軟な基盤 • スケーラブルな • とても強力な • 拡張された • ASP.NET と PHP Web インフラ 管理ツール群 サーバー保護 のサポート • 動的なキャッ • 集中管理 • セキュアな • モジュール化さ シュと圧縮機能 コンテンツ発行 れた拡張が容易 • 委任も可能な なWebサーバー • 高機能な リモート管理 • 向上した要求 診断ツール フィルター機能 • スマートな メディア配信 18 さらなる信頼性 スケーラブルなWebインフラ 動的なキャッシュと圧縮機能 高機能な診断ツール 19 19 Windows Server には ネットワーク負荷分散と いう標準機能がある アプリケーション層での負荷分散ソリューション は今まで無かった Application Center の CLB に近いもの Application Request Routing モジュールを IIS7 に追加することで新たに実現 負荷分散のロジックは6通り(処理バイト数の平 準化など) 振り分けを判断する際に URL Rewriteモジュール に依存している 開発中のARR2.0ではエッジキャッシュにもなれ るように機能拡張 20 項目 説明 名前 Application Request Routing 説明 HTTPヘッダー、サーバー変数 及び 負荷分散ロジックに基づい て動作するルーティングモジュール。ルーティングの判断を行 う上でURL Rewrite Moduleに依存している。 特徴 ●HTTPベース(アプリケーション層)のルーティング判断 ●ユーザーが選択できる6つの負荷分散アルゴリズム (Weighted Round Robin, Weighted Total Traffic, Least Current Request, Least Response Time, Server Variable Hash, Query String Hash) ●ライブトラフィックと特定URLのテストによるヘルスモニタ リング:サーバーの健康状態をいくつかの設定で定義 ●2.0(ベータ)ではディスクキャッシュ機能を備える ベネフィット アプリケーションの可用性とスケーラビリティの向上、サー バーリソースの稼働率向上、アプリケーション展開の判断基準 を提供する元になる。共有ホスティングにも有効。 利用可能 OS Windows Server 2008 (IIS 7.0) URL Rewrite Module 21 項目 説明 名前 URL Rewrite 1.1 説明 Webサーバーが処理を行う前にルールに従ったURLのリライト メカニズムを提供するツール。ヘッダーやサーバー変数に基づ き、正規表現やワイルドカードを使用したルールを作成可能。 特徴 ●ルールベースで動作するエンジンによるパターンマッチング ●ECMA-262互換の正規表現、ワイルドカードによるルール ●サーバー全体に効くGlobalルール[applicationHost.configに 指定]と特定のスコープ(例:サイト)に効くDistributedルール [web.configで指定]が指定可能 ●URLリライト以外にもリダイレクト、処理中止、カスタムス テータスコードの送付などのアクションも可能 ●mod_rewriteのルールを変換、インポートする機能がある ベネフィット 柔軟なルールベースのリライトエンジンにより、ユーザーフレ ンドリー、あるいはサーチエンジンフレンドリーなURLを動的 アプリケーションでも可能にする。 利用可能 OS Windows Server 2008 (IIS 7.0) その他前提条件 IIS7.0がインストールされていること 22 強力な動的コンテンツ出力キャッシュ ユーザーモードとカーネルモードあり 利用ターゲットは「半」動的コンテンツ 厳密なトランザクションは NG だが、動的コ ンテンツでも様々な角度でキャッシュ可能 新しくなった HTTP 圧縮機能 アプリケーションの通信量・時間を縮小 静的・動的 コンテンツ向けの HTTP 圧縮 静的コンテンツの圧縮後レスポンスはカーネル モードでキャッシュする 23 バックエンドに依存した呼び出しを抑える パフォーマンス面で飛躍的な向上 簡単な WCAT (Web Capacity Analysis Tool) による ストレステストをかなり実施 www.microsoft.com/en/us/default.aspx 出力キャッシュ テスト期間 RPS CPU% リクエスト/秒 無効 1時間 346 100% 有効 1時間 3305 100% すべてのアプリケーションに適切な訳ではない ※パーソナライズ度の非常に高いコンテンツは効果があまり見込めないかもしれない 24 主に静的コンテンツ圧縮機能が変更 既定でオン IIS7 ではメインスレッド上で圧縮も行われ、 閾値を利用したキャッシュ保持に変更 圧縮済みのファイルが置かれるフォルダは c:¥inetpub¥temp 以下のネスト構造に変更 CPU稼働率を閾値にした圧縮の自動無効が可能 になり、30秒ごとに稼働率を計算 コンテンツタイプごとの圧縮設定が可能 メインスレッド実行に伴い、いくつかのプロパ ティがキューに関係するものなどが除外 構成上では Deflate は除外されたが、機能は 手動で構成すれば使用可能 25 多くの新しい診断機能が登場 ブラウザーに返る詳細なエラー リクエストに関する詳細情報を表示 実行状態情報を公開するAPI(RSCA) ブラックボックスからの離脱 ワーカープロセス中の実行要求の詳細取得 実行時間の長いリクエストの抽出が可能に 要求に対する高機能なトレース ASP.NET ページトレースとの融合 ETWフレームワークの本格的な採用 本番環境での情報採取が容易に 26 エラーの概要 エラー情報の詳細 可能性のある原因 対処方法 再構築されたカスタムエラー サーバー外のクライアントと “Localhost” で相違 詳細なエラー結果情報 時刻、URL、実行中のモジュール、ステータス etc 27 実行時ステータスをAPIで取得、制御する 最新状態・詳細な実行時の状況を取得する方法を提供する ' connect to provider set oService = GetObject("winmgmts:root¥WebAdministration") APPCMDでの利用も for Each oProcess in oService.InstancesOf("WorkerProcess") ' the PID of the process is just the Id property MWAでの利用も WScript.Echo "---W3WP DETAILS---" もちろん可能! WScript.Echo " W3WP PID : " & oProcess.PID WScript.Echo " W3WP AppPoolId : " & oProcess.ApplicationPool ※MWA:Microsoft.Web.Administration Next 28 28 fr999999.xml + freb.xsl 29 どうやって使うか、IIS7ではFRTに出力される! まずページトレーシングを有効に <%@ Page Trace=“True” %> ASPNET プロバイダー、Page フラグを取得するようにFRTを構成る <traceFailedRequests> <add path=“login.aspx” > <traceAreas> <add provider=“ASPNET” area=“Page” verbosity=“verbose” /> </traceAreas> <failureDefinitions> <add statusCodes=“401” timeTaken=“” /> </failureDefinitions> </add> <traceFailedRequests> イベントは以下を出力する データ: Connection ID, Activity ID, Uri, Write() Warn() コールで指定 したメッセージ Trace.Warn() と Trace.Write() は別のイベントタイプ Write() イベント : verbosity=“verbose” Warn() イベント : verbosity=“warning” 30 ETWを利用した出力 トレースのフレームワーク はETLファイルへ ETWは IIS6.0 SP1 トレース トレース イベント イベント でも出力可能 ソース プロバイダー/ w3core コンシューマー ETWはKernel Mode によるトレース出力 Vista以降ではOS管 コンシューマ いずれかの 理ツールと統合 module モジュール パイプライ TRACE_EVENT (ETW, FREB ン上のモ ジュール etc.) Trace トレース 任意の コンフィグ config トレース 読み込み 出力書式 31 管理のしやすさ とても強力な管理ツール群 集中管理 委任も可能なリモート管理 32 32 GUI IIS マネージャ コマンドライン appcmd スクリプト WMI (root¥WebAdministration) マネージドコード Microsoft.Web.Administration IIS マネージャ マネージド WMI appcmd API アンマネージド コンフィグレーション リーダー API applicationHost.config XML コンフィグ ファイル web.config 33 33 HTTPでのリモート接続、ファイアウォール越えが可能 マネージドコードによるツール機能の拡張も可能 システム管理者ではない委任されたユーザーによるサイトやア プリケーションの管理を実行可能 34 C:¥> appcmd list sites SITE "Default Web Site" (id:1,bindings:HTTP/*:80:,state:Started) SITE "Site1" (id:2,bindings:http/*:81:,state:Started) SITE "Site2" (id:3,bindings:http/*:82:,state:Stopped) C:¥> appcmd list requests REQUEST "fb0000008000000e" (url:GET /wait.aspx?time=10000,time:4276 msec,client:localhost) C:¥> appcmd list requests /apppool.name:DefaultAppPool C:¥> appcmd list requests /wp.name:3567 C:¥> appcmd list requests /site.id:1 アプリプール、ワーカープロセス あるいはサイトによるフィルター 結果 新IIS7構成情報に簡単に、すばやくアクセス IIS6で用意された*.vbs ファイル群に変わるもの ビルトインで“パイプ”をサポート 実はコンポーネントのインストールにも ・・・iis7.log 35 IIS ユーザー ADSI WMI スナップイン (root¥MicrosoftIISv2) プログラム ABO(Admin Base Object) メモリー内 メタベース