PST設定ファイル(3.2.0)

はじめに

WEXAL® Page Speed Technology(以下、PST)の設定を記述する設定ファイルです。フォーマットはYAML形式です。プロファイル毎にwexal/pst.config.yamlに作成されます。(本番環境用のPST設定ファイル)

本番環境用のPST設定ファイルとは別に、検証などの目的のためにステージング用のPST設定ファイルを作成することができます。ステージング用のPST設定ファイルはプロファイル毎にwexal/pst.設定名.config.yamlに作成します。例えばwexal/pst.stg.config.yamlとなります。

設定を変更する

PST Managerで編集する

PSTの設定はプロファイルのダッシュボードのモードから変更できます。詳細はPST Managerを参照してください。特別な理由がない限り、PST Managerによる運用をお勧めします。

なお、ステージング用のPST設定ファイルはPST Managerでは編集できません。後述の「PST設定ファイルを直接編集する」を参照してください。

PST設定ファイルを直接編集する

PST設定ファイルを編集する際は、記述に誤りがないように注意してください。記述に誤りがあった場合は、Webサイトが表示されないといった不具合が出ることがあります。

設定の書式

PST設定ファイルは YAML で書かれています。基本的なフォーマットは、YAMLの解説を参照してください。本項ではPage Speed Technologyで記述するノードを解説します。

pst

PSTを制御します。

スカラー(文字列)

on有効にします。
off無効にします。

pst: on

watch

PSTのプロファイル監視プロセスを制御します。

スカラー(文字列)

onサーバの起動時に自動的にプロファイルのリソース監視サービスを起動します。
offサーバの起動時に自動的にプロファイルのリソース監視サービスを起動しません。

watch: on

tdir

PSTのプロファイルディレクトリにあるDocumentRootを指定します。pst initコマンドで自動的に設定されるので、基本的に変更は不要です。

スカラー(文字列)

パスプロファイルディレクトリにあるDocumentRootへのフルパスを指定します。
デフォルトは /home/kusanagi/プロファイル名/DocumentRoot です。

tdir: /home/kusanagi/profile/DocumentRoot

odir

PSTで参照するオリジナルコンテンツへのシンボリックリンク名を指定します。pst initコマンドで自動的に設定されるので、基本的に変更は不要です。

スカラー(文字列)

シンボリックリンク名オリジナルコンテンツへのシンボリックリンク名を指定します。
デフォルトは _wexal です。

odir: _wexal

timezone

PSTが参照するタイムゾーンを指定します。

スカラー(文字列)

タイムゾーン名タイムゾーン名はtzselectコマンドで調べることができます。
デフォルトは Asia/Tokyo です。

timezone: Asia/Tokyo

protocol

PSTを適用するプロトコルを指定します。

スカラー(文字列)

httpHTTPで適用します。
httpsHTTPSで適用します。httpsを指定する際は、HTTPからHTTPSに対する301リダイレクトを合わせて設定してください。リダイレクトの設定は、kusanagi sslコマンドを参照してください。

protocol: https

options

PSTの最適化で使用するディレクティブの種類を指定します。

シーケンス(文字列)

lualuaディレクティブを有効にします。指定されていない場合、luaノードに書かれたディレクティブは無効になります。
apply_logged_in_userログイン中のユーザーのセッションに対してPSTの最適化を有効にするか指定します。指定されていない場合、ログイン中のユーザーのセッションに対しては無効になります。

options:
- lua

global_exclude

PSTの最適化対象に含めないディレクトリを指定します。

シーケンス(文字列)

パスPSTの最適化対象に含めないディレクトリをKUSANAGIのプロファイルのDocumentRoot (tdirノードの値) からの絶対パスで指定します。

global_exclude:
- /_wexal
- ~$
- /\.
- /wp-admin
- /wp-includes
- /wp-content/upgrade
- /wp-content/plugins

watch_additional_exclude

PSTのリソース監視サービスで最適化対象に含めないディレクトリを指定します。watch_additional_excludeに指定したディレクトリは、リソース監視サービスの最適化対象にはなりませんが、他のサービスやPSTコマンドの対象にはなります。逐次最適化の必要はなく、バッチ処理などで最適化を行うディレクトリを指定してください。

シーケンス(文字列)

パスPSTのリソース監視サービスで最適化対象に含めないディレクトリをKUSANAGIのプロファイルのDocumentRoot (tdirノードの値) からの絶対パスで指定します。

watch_additional_exclude:
- /wp-content/uploads

lua

PSTのコンテンツの最適化の方法を設定します。

マッピング

lua > dynamic

戦略AI Davidによる最適化戦略の自動的な生成を設定します。

マッピング

lua > dynamic > enable

戦略AI Davidによる最適化戦略の自動的な生成の有効・無効を指定します。

スカラー(ブール)

true有効にします。
false無効にします。
デフォルトは無効です。

lua:
  dynamic:
    enable: true

lua > dynamic > exptime

自動的に生成した最適化戦略の有効期間を秒で指定します。

スカラー(数値)

数値有効期間を秒で指定します。
デフォルトは3600です。

lua:
  dynamic:
    exptime: 3600

lua > dynamic > config

自動的に最適化戦略を生成する際のオプションを指定します。

マッピング

lua > dynamic > config > benchmark

戦略AI Davidによる最適化戦略の自動的な生成に関してベンチマークを測定してログに出力します。

スカラー(ブール)

true有効にします。
false無効にします。
デフォルトは無効です。

lua:
  dynamic:
    config:
      benchmark: false

lua > dynamic > config > configname

戦略AI Davidによる最適化戦略を指定した名前で生成します。

スカラー(文字列)

設定名最適化戦略を設定名で生成します。デフォルトは指定なし(本番環境)です。

lua:
  dynamic:
    config:
      configname: stg

lua > dynamic > config > diagnosis

戦略AI Davidによる最適化戦略の自動的な生成に関してより詳細に出力します。

スカラー(ブール)

true有効にします。
false無効にします。
デフォルトは無効です。

lua:
  dynamic:
    config:
      diagnosis: false

lua > dynamic > config > html

戦略AI Davidによる最適化戦略の自動的な生成を行う際に、Webページのコンテンツを最適化戦略データベースに保存します。

スカラー(ブール)

true有効にします。
false無効にします。
デフォルトは無効です。

lua:
  dynamic:
    config:
      html: false

lua > dynamic > config > timeout

戦略AI Davidによる最適化戦略の自動的な生成に関して、Webサイトの解析を行うタイムアウト時間を秒で設定します。

スカラー(数値)

数値Webページを解析するタイムアウト時間を秒で設定します。
0を指定した場合はWebページのレスポンスがあるまで待ち続けます。
デフォルトは10です。

lua:
  dynamic:
    config:
      timeout: 10

lua > dynamic > config > voyage

戦略AI Davidによる最適化戦略の自動的な生成を行う際、puppeteerを用いたWebページを解析を有効にします。

スカラー(ブール)

true有効にします。
false無効にします。無効にした場合はリソースの消費が少なく高速に動作しますが、LCPの取得が行えません。
デフォルトは無効です。

lua:
  dynamic:
    config:
      voyage: false

lua > dynamic > config > waituntil

戦略AI Davidによる最適化戦略の自動的な生成を行う際、puppeteerを用いたWebページの解析を完了とするイベントを指定します。

スカラー(文字列)

loadloadイベントを指定します。デフォルトはloadです。
domcontentloadeddomcontentloadedイベントを指定します。
networkidle0アクティブなネットワークコネクションが500msの間ない場合に完了とします。
networkidle2アクティブなネットワークコネクションが500msの間、2つ以内の場合に完了とします。

lua:
  dynamic:
    config:
      waituntil: load

lua > dynamic > config > inspector

オリジナルのWebページとPSTを有効にした結果を比較して、HTMLとリソースの整合性を検証するインスペクターを有効にします。

スカラー(ブール)

true有効にします。有効にした場合は、戦略AI Davidによる最適化戦略の自動的な生成を行う際のリソースの消費が多くなります。
false無効にします。
デフォルトは無効です。

lua:
  dynamic:
    config:
      inspector: false

lua > fcache

luaのオンメモリキャッシュ(L-Cache)を設定します。L-CacheはKUSANAGIのプロファイルでF-Cacheが有効な場合にのみ使用できます。

マッピング

lua > fcache > enable

L-Cacheの有効・無効を指定します。

スカラー(ブール)

true有効にします。
false無効にします。
デフォルトは無効です。

lua:
  fcache:
    enable: true

lua > fcache > exptime

L-Cacheの有効期間を秒で指定します。

スカラー(数値)

数値有効期間を秒で指定します。
デフォルトは60です。

lua:
  fcache:
    exptime: 60

lua > header_filter

HTTPヘッダを出力するタイミングで実行するluaディレクティブを指定します。戦略AI Davidによる最適化戦略の自動的な生成が有効な場合は無視されます。

シーケンス(マッピング)

luaディレクティブを指定します。詳細はluaディレクティブを参照してください。

lua:
  header_filter:
  - cmd: add
    args:
    - 'page-speed-technology: on'

lua > body_filter

HTTPレスポンスを出力するタイミングで実行するluaディレクティブを指定します。戦略AI Davidによる最適化戦略の自動的な生成が有効な場合は無視されます。

シーケンス(マッピング)

luaディレクティブを指定します。 詳細はluaディレクティブを参照してください。

lua:
  body_filter:
  - cmd: wp shorten url

worker

PSTのリソースの最適化の方法を設定します。

マッピング

worker > images

画像を対象にリソース最適化の方法を設定します。値を変更したときは、pst opt imageコマンドでリソース最適化を実行してください。

シーケンス(マッピング)

workerディレクティブを指定します。詳細はworkerディレクティブを参照してください。複数のworkerディレクティブを指定することができますが、同じパスを指定した場合、最初にマッチした最適化方法が適用されます。値が存在しない場合は、画像のリソース最適化をしません。

worker:
  images:
  - cmd: optimize
    args:
      formats:
      - png
      - jpg
      - gif
      - webp
      resize: 1920x1080
      quality: 80
      strip: true
      gif_lossy: 80
      webp_lossy: 75

worker > scripts

スクリプトを対象にリソース最適化の方法を設定します。値を変更したときは、pst opt jsコマンドでリソース最適化を実行してください。

シーケンス(マッピング)

workerディレクティブを指定します。詳細はworkerディレクティブを参照してください。 複数のworkerディレクティブを指定することができますが、同じパスを指定した場合、最初にマッチした最適化方法が適用されます。値が存在しない場合は、スクリプトのリソース最適化をしません。

worker:
  scripts:
  - cmd: optimize
    args:
      ie11: true
      ie11_ab: true

worker > stylesheets

スタイルシートを対象にリソース最適化の方法を設定します。値を変更したときは、pst opt cssコマンドでリソース最適化を実行してください。

シーケンス(マッピング)

workerディレクティブを指定します。 詳細はworkerディレクティブを参照してください。 複数のworkerディレクティブを指定することができますが、同じパスを指定した場合、最初にマッチした最適化方法が適用されます。値が存在しない場合は、スタイルシートのリソース最適化をしません。

worker:
  stylesheets:
  - cmd: optimize
    args:
      ie11: true
      ie11_ab: true

overrides

特定の条件でPSTの設定を上書きしたい場合に設定します。

シーケンス(マッピング)

overrideディレクティブを指定します。詳細はoverrideディレクティブを参照してください。

overrides:
- name: mobile pages
  device: mobile
  path: .
  if: 1
  node:
  - lua
  applied:
    lua:
      fcache:
        enable: 0
        exptime: 60
      header_filter:
      - cmd: wp remove header
      body_filter:
      - cmd: wp shorten url

url

一意なURLとして認識させたいクエリ文字列を指定します。PSTでは基本的にクエリ文字列を省いたURLを一意のURLとして認識します。しかし クエリ文字列によって異なるページが生成される場合など、クエリ文字列によって異なる最適化を行いたい場合に使用します。PSTは、指定されたクエリ文字列のキーと値にマッチするものを残して、一意のURLを生成するようになります。複数のクエリ文字列を指定した場合はOR条件となります。

マッピング

キー

クエリ文字列のキーを指定します。クエリ文字列のキーは完全一致する必要があります。

クエリ文字列の値を正規表現で指定します。

url:
  user: .
  group: ^wp-

proxy

リバースプロキシの設定を行います。基本的にpst initコマンドにより設定されますので、変更の必要はありません。

マッピング

proxy > scheme

リバースプロキシの場合のオリジンに接続するためのプロトコルを設定します。

スカラー(文字列)

httpHTTPを使用します。
httpsHTTPSを使用します。

proxy:
  scheme: https

proxy > host

リバースプロキシの場合のオリジンのFQDNを設定します。

スカラー(文字列)

FQDNオリジンのFQDNを指定します。

proxy:
  fqdn: www.example.com

proxy > ip

リバースプロキシの場合のオリジンのIPアドレスを設定します。

スカラー(文字列)

IPアドレスオリジンのIPアドレスを指定します。

proxy:
  ip: xxx.xxx.xxx.xxx

nano

nanoの設定を行います。基本的にpst initコマンドにより設定されますので、変更の必要はありません。

マッピング

nano > scheme

nanoに接続するためのプロトコルを設定します。

スカラー(文字列)

httpHTTPを使用します。
httpsHTTPSを使用します。

nano:
  scheme: https

nano > host

nanoのFQDNを設定します。

スカラー(文字列)

FQDNnanoのFQDNを指定します。

nano:
  fqdn: www.example.com

hint

リソースヒントの設定を行います。リソースヒントにより、特定の条件の場合にのみディレクティブを適用する、または、除外するように設定できます。基本的にPST Managerにより設定されますので、変更の必要はありません。

マッピング

hint > cmds

luaディレクティブに関するリソースヒントを設定します。特定の条件の場合にのみluaディレクティブを適用する、または、除外するように設定できます。

シーケンス(マッピング)

hintディレクティブを指定します。詳細はhintディレクティブを参照してください。複数のhintディレクティブを指定することができますが、最初にマッチした条件が適用されます。

hint:
  cmds:
  - cmd: wp shorten url
    exclude:
      path:
      - ^/

hint > scripts

luaディレクティブのengagement delayに関するリソースヒントを設定します。特定の条件の場合にのみengagement delayを適用する、または、除外するように設定できます。

シーケンス(マッピング)

hintディレクティブを指定します。詳細はhintディレクティブを参照してください。複数のhintディレクティブを指定することができますが、最初にマッチした条件が適用されます。

hint:
  scripts:
  - script: /wp-content/themes/twentytwenty/print.css
    apply:
      path:
      - .

hint > features

最適化戦略に関するリソースヒントを設定します。特定の最適化戦略を有効・無効にすることができます。
デフォルトでは全ての最適化戦略が有効です。

シーケンス(マッピング)

hintディレクティブを指定します。詳細はhintディレクティブを参照してください。複数のhintディレクティブを指定することができますが、最初にマッチした条件が適用されます。

hint:
  features:
  - feature: webfont
    enable: false