はじめに
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を適用するプロトコルを指定します。
型
スカラー(文字列)
値
http | HTTPで適用します。 |
https | HTTPSで適用します。httpsを指定する際は、HTTPからHTTPSに対する301リダイレクトを合わせて設定してください。リダイレクトの設定は、kusanagi sslコマンドを参照してください。 |
例
protocol: https
options
PSTの最適化で使用するディレクティブの種類を指定します。
型
シーケンス(文字列)
値
lua | luaディレクティブを有効にします。指定されていない場合、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ページの解析を完了とするイベントを指定します。
型
スカラー(文字列)
値
load | loadイベントを指定します。デフォルトはloadです。 |
domcontentloaded | domcontentloadedイベントを指定します。 |
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
リバースプロキシの場合のオリジンに接続するためのプロトコルを設定します。
型
スカラー(文字列)
値
http | HTTPを使用します。 |
https | HTTPSを使用します。 |
例
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に接続するためのプロトコルを設定します。
型
スカラー(文字列)
値
http | HTTPを使用します。 |
https | HTTPSを使用します。 |
例
nano:
scheme: https
nano > host
nanoのFQDNを設定します。
型
スカラー(文字列)
値
FQDN | nanoの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