フロントエンドの最適化
-
リクエスト数を減らす。
-
各ページのレンダリングに必要です。
-
ページ応答のバイト数を減らします。
FEO 機能によって実行される最適化
| ウェブ最適化 | 問題 | NetScaler FEO機能は何をしますか | メリット |
|---|---|---|---|
| インライン化 | クライアントブラウザは、多くの場合、Webページに関連付けられた外部CSS、画像、およびJavaScriptをロードするためにサーバーに複数の要求を送信します。 | CSSインライン、JavaScriptインライン、CSSの組み合わせ | 外部 CSS、画像、および JavaScript を HTML ファイルにインラインでロードすると、ページレンダリング時間が短縮されます。この最適化は、一度しか表示されないコンテンツや、キャッシュサイズが限られているモバイルデバイスにとって有益です。 |
| ミニフィケーション | サーバーから取得されたデータには、空白、コメント、改行文字などの不要な文字が含まれます。ブラウザがこのようなデータの処理に費やす時間により、ウェブサイトに遅延が生じます。 | CSS ミニファイファイズ、ジャバスクリプトミニフィケーション、HTML コメントの削除 | 圧縮されたファイルは帯域幅の消費量が少なく、特別な処理による遅延を回避できます。 |
| 画像最適化 | モバイルブラウザは、接続速度が遅く、キャッシュメモリが限られていることがよくあります。モバイルクライアントに画像をダウンロードすると、より多くの帯域幅、処理時間、およびキャッシュスペースが消費され、Webサイトの待ち時間が発生します。 | JPEG 最適化, CSS 画像のインライン化, 画像の縮小属性, GIF から PNG への変換, HTML 画像のインライン化, WebP 画像変換, JPEG, GIF, PNG から JPEG-XR 画像変換 | 画像をNetScaler ADCによって画像タグに示されているサイズに縮小し、クライアントブラウザが画像をより高速にロードできるようにします。 |
| 再配置 | 外部 CSS、画像、および JavaScript の処理が効率的でないと、ページの読み込み時間が長くなります。 | 画像の遅延読み込み、CSSのヘッドへの移動、JavaScriptの終了への移動 | HTML要素を再配置して、Webページのレンダリング時間を短縮し、クライアントブラウザがオブジェクトをより高速にロードできるようにします。 |
| 接続管理 | 多くのブラウザは、1 つのドメインに対して確立できる同時接続の数に制限を設けています。これにより、ブラウザが Web ページのリソースを 1 つずつダウンロードするようになり、ブラウザの処理時間が長くなる可能性があります。 | ドメインシャーディング | 接続の制限を克服し、クライアントブラウザがより多くのリソースを並行してダウンロードできるようにすることで、ページのレンダリング時間を短縮します。 |
フロントエンド最適化の仕組み
-
ページの内容を解析し、キャッシュにエントリを作成し (該当する場合)、FEO ポリシーを適用します。たとえば、NetScalerは次の最適化ルールを適用できます。
-
CSS または JavaScript 内に存在する空白やコメントを削除します。
-
1 つ以上の CSS ファイルを 1 つのファイルに結合します。
-
GIF 画像形式を PNG 形式に変換します。
-
-
埋め込まれたオブジェクトを書き換え、最適化されたコンテンツを、最初のキャッシュエントリに使用されたものとは異なる署名でキャッシュに保存します。
-
後続のリクエストでは、最適化されたオブジェクトをサーバーからではなくキャッシュから取得し、その応答をクライアントに転送します。
フロントエンド最適化の設定
前提条件
-
キャッシュメモリを割り当てます。
-
デフォルトのキャッシュコンテンツグループの最大応答サイズとメモリ制限を設定します。
NetScalerコマンドインターフェイスを使用してフロントエンド最適化を構成する
-
フロントエンド最適化機能を有効にします。
enable ns feature FEO
-
1 つ以上のフロントエンド最適化アクションを作成します。
add feo action <name> [-imgShrinkToAttrib] [-imgGifToPng] ...
add feo action allact -imgGifToPng -pageExtendCache
set feo parameter [-cacheMaxage <integer>] [-JpegQualityPercent <integer>] [-cssInlineThresSize <integer>] [-inlineJsThresSize <integer> [-inlineImgThresSize <integer>]
set feo parameter -cacheMaxage 10
-
1つ以上のフロントエンド最適化ポリシーを作成します。
add feo policy <name> <rule> <action>
>add feo policy pol1 TRUE all act
>add feo policy pol1 "(HTTP.REQ.URL.CONTAINS("testsite"))" allact1
-
ポリシーを負荷分散またはコンテンツスイッチング仮想サーバーにバインドするか、グローバルにバインドします。
bind lb vserver <name> -policyName <string> -priority <num>
bind cs vserver <name> -policyName <string> -priority <num>
bind feo global <policyName> <priority> -type <type> <gotoPriorityExpression>
bind lb vserver abc -policyName pol1 -priority 1 -type NONE
bind feo global pol1 100 -type REQ_DEFAULT
-
構成を保存します。ns構成を保存
GUI を使用したフロントエンドの最適化の構成
-
フロントエンド最適化ポリシーを作成します。
-
負荷分散またはコンテンツスイッチング仮想サーバーにポリシーをバインドします。
-
フロントエンド最適化ポリシーマネージャーで、フロントエンド最適化ポリシーを負荷分散またはコンテンツスイッチング仮想サーバーにバインドします。
フロントエンド最適化構成の確認
CLI を使用して FEO 統計を表示する
-
stat feo注:stat feo policy コマンドは、高度な FEO ポリシーの統計情報のみを表示します。 -
show feo policy name -
stat feo -detail
NetScalerダッシュボードでFEOの統計情報を表示する
-
「フロントエンドの最適化」を選択すると、
FEO統計の概要が表示されます。 -
「 グラフィカルビュー 」タブをクリックすると、FEO 機能によって処理されたリクエストの割合が表示されます。