---
title: "Recommendations: Sitecore tuning in Azure"
slug: "recommendations--sitecore-tuning-in-azure"
abstract: "Azure機能を有効にして、AzureでのSitecore性能を向上させます。"
---
# Recommendations: Sitecore tuning in Azure

以下の推奨事項は、Microsoft Azure機能を有効にし、AzureにおけるSitecoreのパフォーマンスを向上させる方法を説明しています。

## IOチューニングによるサーバー性能向上

ファイルシステム上のディスクの読み書き操作を最適化するために:

-   最初のリクエスト後にファイルをキャッシュします。例えば、重要なCSSやJavaScriptファイルです。
-   ログレベルを割り当てることでディスク上の操作数を減らします。ログレベル(*Priority*)はログに書き込まれるメッセージを制限します。例えば、本番サーバーではエラーだけに関心があるかもしれません: <priority value="ERROR" />
-   AzureのPremium App Serviceプランに加入し、SSDディスクの利用を始めて、より良い利用可能性とレイテンシを得ましょう。

## コールドスタートをブーストする

強制ノード再起動後や新しいワーカープロセスへの移行後のコールドスタート遅延を減らすために、web.configファイル内で*Application Initialization*設定を指定できます。例えば、ホームページ、検索専用ページ、セクションランディングページなどのキーページを追加することで:

<system.webServer>
 <applicationInitialization doAppInitAfterRestart="true">
 <add initializationPage="/" />
 <add initializationPage="/key-page1/" />
 <add initializationPage="/key-section/page2/" />
 </applicationInitialization>
</system.webServer>

アプリケーション初期化モジュールはHTTPSではなくHTTPプロトコルでウォームアップリクエストを送信するよう設計されています。したがって、ウェブサイトがすべてのHTTPリクエストを関連するHTTPSリクエストにリダイレクトするように設定されている場合は動作しません。 web.configファイルに以下の項目を追加して、リライトルールからアプリケーション初期化を除外できます:

<rewrite>
	<rules>
		<rule name="No redirect on warmup request" stopProcessing="true">
			<match url=".\*" />
			<conditions>
				<add input="{HTTP\_HOST}" pattern="localhost" />
				<add input="{HTTP\_USER\_AGENT}" pattern="Initialization" />
			</conditions>
			<action type="Rewrite" url="{URL}" />
		</rule>
		<rule name="HTTP to HTTPS redirect for all requests" stopProcessing="true">
			<match url="(.\*)" />
			<conditions>
				<add input="{HTTPS}" pattern="off" />
			</conditions>
			<action type="Redirect" url="https://{HTTP\_HOST}/{R:1}" />
		</rule>
	</rules>
</rewrite>

## リバースプロキシを有効にする

リバースプロキシを設定して、ウェブサイト上の特定のURLが不要なリダイレクトなしに外部サイトからそのコンテンツを取得できるようにできます。アプリサービスのサイトフォルダにapplicationHost.xdt変換を追加することでリバースプロキシ機能を有効にすることもできます。例えば、変換ルールを使って "/blog/” ファイルやレガシーファイルで始まるリクエストを上書きできます。

AzureのSitecoreでリバースプロキシを有効にするには:

1.  applicationHost.xdtファイルを使ってリバースプロキシ機能を有効にする:
    
    <?xml version="1.0"?>
    <configuration
     xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
     <system.webServer>
     <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false"/>
     </system.webServer>
    </configuration>
    
2.  web.configファイルにプロキシの書き換えルールを追加します:
    
    <rewrite>
     <rules>
     <rule name="Proxy" stopprocessing="true">
     <match url="^blog/?(.\*)" />
     <action type="Rewrite" url="http://www.yourblogdomain.com/{R:1}"/>
     </rule>
     </rules>
    </rewrite>
    
3.  Sitecoreがプロキシリクエストを傍受しないように、Sitecoreの設定パッチファイルを追加してください:
    
    <configuration
     xmlns:patch="http://www.sitecore.net/xmlconfig/">
     <sitecore>
     <settings>
     <setting name="IgnoreUrlPrefixes" value="/health/explore|/sitecore/default.aspx|..." patch:instead="setting@name='IgnoreUrlPrefixes'"/>
     </settings>
     </sitecore>
    </configuration>
    

## 予期しないアプリケーションプールのリサイクルを防ぐ

アプリケーションプールの突然のリサイクルが発生する理由は複数あります。例えば、DLLの変更や他のファイルの設定変更によって再利用がトリガーされることがあります。デフォルトでは、アプリケーションは各サブディレクトリごとに監視するオブジェクトを作成し、変更されたファイルごとにリサイクル通知を開始します。

*Overwhelming File Change Notifications*エラーによるアプリケーションプールのリサイクルリスクを最小限に抑えるために、*File Change Notification (FCN)*設定をオフにしてください。

FCNをオフにするには:

-   web.configファイルのhttpRuntimeセクションにfcnMode="Disabled"を追加してください:
    
    <system.web>
     <httpRuntime fcnMode="Disabled" />
     </system.web>