狠狠撸

狠狠撸Share a Scribd company logo
『ビジネスサイトを作って学ぶ
WordPressの教科書 Ver.5.x対応版』
パフォーマンスチューニング
セキュリティ&常时厂厂尝化編
小川 欣一
Agenda
● 自己绍介
● WordPressではじめるパフォーマンスチューニングのことはじめ
● WordPressの基本セキュリティ
● 常时厂厂尝化
自己绍介
● OSS,BCP事業 インフラ系
● PHPで内製のCMS開発など
2010年 ? 2016年頃
● プライム?ストラテジー株式会社
 WordPressテーマ開発,クラウドインテグレーション
2017年 ? 2019年
現在
 LaravelでのWebサービス開発など
WordPressではじめる
パフォーマンスチューニング
のことはじめ
なぜパフォーマンスチューニング
● ユーザーが快適にページを閲覧できるようにするため
○ 遅いサイトはユーザの忍耐を強いることになる
○ コンテンツを全く見ずにサイトを去ってしまう
● Webサイトが収益に繋がっている場合...とても重要。
○ ロード時間を短くすれば、快適に閲覧できる。 UX(User Experience)の向上。
○ サイトのコンテツをより多くの人が見てくれて、訪問者の増加、商品購入の増加など期待できる。
https://webmaster-ja.googleblog.com/2018/01/using-page-speed-in-mobile-search.html
Find out how you stack up to new industry benchmarks for mobile page speed
https://www.thinkwithgoogle.com/marketing-resources/data-measurement/mobile-page-speed-new-industry-benchmarks/
ページの読み込み速度 モバイル検索のランキング要素に使用
遅いサイトは
直帰率の増加に繋がってしまう!
Googleのページより抜粋
Webページが表示されるまでの流れ ■キャッシュによる改善
Nginxとphp-fpm(FastCGI:FastCGI Manager) 機能
WordPressによるアプリケーション側での改善
①HTTPリクエスト
HTML解析
ページ表示
⑤HTTPレスポンス
⑥サブリソースリクエスト
(html内CSS, JS)
⑦サブリソースレスポンス
(CSS, JS)
③SQLクエリ
④SQL結果
②PHP実行
パフォーマンスチューニングの方法
html生成
キャッシュの種類
全体キャッシュ 部分キャッシュ
部分キャッシュ
適しているもの?
● API(Application Programming Interface)を呼び出して生成する情報(サイドバー)
動作が重いプラグインや、記事取得で毎回実行している重いSQLクエリなど
APIの1日の上限数があり毎回取得することの回避策として
● ヘッダー部、コンテンツの最上位階層ページへのリンク(グローバルナビゲーショ
ン)?
● 会社概要など静的なページへのリンク(フッターナビゲーションなど)
例)
WordPress Popular Postsプラグインでランキング
表示のためのページビューを保持するテーブルが肥
大化し、サイト表示に1秒以上がかかる
例)
<ul>
<?php
$key = 'wpp_rank';
if ( false === ( $rank = get_transient( $key ) ) ) {
if( function_exists( 'wpp_get_mostpopular' ) ) {
$arg = array (
'post_type' => 'post, page',
:(略
'stats_views' => '1',
'post_html' => '<li>{thumb} {stats}</p></li>'
);
ob_start();
wpp_get_mostpopular( $arg );
$rank = ob_get_clean();
set_transient( $key, $rank, 24 * HOUR_IN_SECONDS );
}
}
else
echo $rank;
}
?>
</ul>
● 有効期限つきキャッシュ機能
● key/value形式でwp_optionsに保存
部分キャッシュ Transient API
● get_transient( $transient_key )
トランジェントを取得。引数に指定した
キーを元に、wp_optionsから取得
● set_transient
( $transinet_key, $value, $expiration )
トランジェントを登録。引数にキー、
登録する情報、有効期限
部分キャッシュ Transient API
遅いクエリを確認
例)Query Monitor
MariaDB/MySQLスロークエリのログ でも確認可
slow_query_log = 1
slow_query_log_file = "/var/log/mysql/slow.log"
long_query_time = 1.2
/etc/my.cnf.d/server.cnfより抜粋
/var/log/mysql/slow.log
Rows_examined:検証データ(読み込んだレコード数) : 1000105
Row_sent:抽出したクエリの結果レコード : 10件
=>1件あたり約10万レコードチェック
1日一回、1週間に一回表示更新できれば良い ..ということであれば、キャッシュの保
持時間を設定して、キャッシュしてしまいましょう!
全体キャッシュ:KUSANAGI bcache
● WordPressのキャッシュ機構:wp_site_cacheに保持
○ WP_CACHE 有効化して使う(wp-config.phpのWP_CACHE true)
○ wp_site_cacheテーブルに一度アクセスしたページ情報を保持
● advanced-cache.php(キャッシュ機能提供,生成してください)
◎Apacheの環境でも使えます
生成
キャッシュの保持時間設定
全体キャッシュ:KUSANAGI bcache
有効化コマンド
# kusanagi bcache onaaaaaaaaaaaaaaaaaaaaaaaa
wp-config.phpでWP_CACHEがtrueとなり、WordPressのキャッシュ機能が有効化され
ます。
define('WP_CACHE', true);
全体キャッシュ:KUSANAGI bcache
ページキャッシュから返されているかどうかは、開発者ツールで、 headersの「X-B-Cache」が「cache」になって
いるとキャッシュから返されてることがわかります。
飞辫冲蝉颈迟别冲肠补肠丑别テーブルに保持されていることを确认できます。
全体キャッシュ:KUSANAGI fcache
Nginxのキャッシュ機能:FastCGIキャッシュ
◎一回ページアクセスしてキャッシュすれば、SQLを毎回発行することなく、キャッシュし
たhtmlを返すことにより高速化(bcacheの方はDB問い合わせ有)
全体キャッシュ:KUSANAGI fcache
有効化コマンド
# kusanagi fcache onaaaaaaaaaaaaaaaaaaaaaaaa
Nginxのconfに以下の設定が追加され、fcache機能が有効化されます。
● /etc/nginx/conf.d/<profile_name>_http.conf
● /etc/nginx/conf.d/<profile_name>_ssl.conf
do_not_cache 1 (キャッシュしない)=> 0(キャッシュする)にして有効化
set $do_not_cache 0;
全体キャッシュ:KUSANAGI fcache
キャッシュの保存先は以下で定義されてます。
● /etc/nginx/nginx.conf
fastcgi_cache_path /var/cache/nginx/wordpress levels=1:2
keys_zone=wpcache:30m max_size=512M inactive=600m;
levels=1:2 ... levelsパラメーターはキャッシュの構造レベルを指定
keys_zone=wpcache:30m ... ゾーン名とキャッシュキー管理用のメモリサイズ。
メモリサイズとしては 30メガバイトを保持するように設定。
max_size=512M ... キャッシュの最大サイズになります。
このサイズを超えると利用されていないものから削除されていく。
inactive=600m ... この時間、アクセスが無いキャッシュを削除。
全体キャッシュ:KUSANAGI fcache
キャッシュから返されているかどうかは、開発者ツールで、 headersの「X-F-Cache」が「Hit」になっていると
キャッシュから返されてることがわかります。
/var/cache/nginx/wordpress/ 配下にキャッシュが保持されていることを確認できます。
注意!
独自で作った会員サイトのマイページなど
ページキャッシュ、Nginxのキャッシュ除外設定しましょう
参考:リクエストURLに応じて、set $do_not_cache 1にすれば除外できます
奥辞谤诲笔谤别蝉蝉のセキュリティの基本
碍鲍厂础狈础骋滨环境では...ダッシュボードで确认できます
WordPressのセキュリティ対策の基本
● wp-config.phpの権限を440
● wp-config.phpの所有者を適切に
kusanagi環境の場合はWordPressをプロビジョニングしたりするので所有者
kusanagi.www。nginxやhttpdのWebサービスが所属するグループはwww。
● wp-config.php をDocumentRoot配下におかない
● wp-contentを755に
誤った権限の wp-config.phpやbackupファイルをDocumentRootに置くと...
例)
# curl https://hogehoge.com/wp-config.php.bak
DBへの接続情報が観れてしまうリスクがあるので注意。基本作業はファイルをそのまま
更新
管理画面へのセキュリティ
Basic認証を設定しましょう
例)Nginxの場合
server {
#:略
location ~* /wp-login.php|/wp-admin/((?!(admin-ajax.php|images/)).)*$ {
satisfy any;
allow 127.0.0.1;
deny all;
auth_basic "basic authentication";
auth_basic_user_file "/home/kusanagi/.htpasswd";
location ~ [^/].php(/|$) {
fastcgi_split_path_info ^(.+?.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
wp-login.phpやwp-admin/配下のurlに適用
admin-ajaxはcronジョブからのAjaxリクエストで使うので除
外
その他...脆弱性対策。WordPressの自動マイナーアップデートは動くようにしておきま
しょう
wp-config.php
define('FTP_USER', 'kusanagi');
define('FTP_PASS', 'xxxxxxx');
WordPress 5.2?追加されたサイトのヘルスチェック机能
常时厂厂尝化
https://webmaster-ja.googleblog.com/2014/08/https-as-ranking-signal.html
SEO対策としても必須
https://webmaster-ja.googleblog.com/2015/12/indexing-https-pages-by-default.html
Googleから公式に言及有。ランキングに影響あり
常时厂厂尝化
● セキュリティリスク軽減(プレーンテキストで流れない)
● Googleの検索エンジンのランキング対策として
● HSTS(HTTP Strict Transport Security):クライアントにHTTPSリクエストを強制
Let’s Encryptでドメイン認証(DV)証明書を取得
● 無料のSSL証明書
○ hostname.example.com の証明書発行(Let’s encryptはマルチドメインサポート . *example.com)
● Certbotを使いACME(Automatic Certificate Management Environment)プロトコ
ルで発行
● KUSANAGIの場合は、以下のコマンドライン(#) で簡単に導入できます。
# kusanagi ssl --email user@example.com         
# 内部的には、certbotを使っています。CentOS系であればcertbotパッ
ケージ、Debian系Ubuntuではletsencryptパッケージで導入可。
常时厂厂尝化の設定について
● HSTS(HTTP Strict Transport Security)
# kusanagi ssl --hsts on                
/etc/nginx/conf.d/profile_name_ssl.conf
add_header Strict-Transport-Security 'max-age=31536000;
includeSubDomains;preload;' always;
HTTPSリダイレクト設定
● Nginxのrewriteルール
/etc/nginx/conf.d/pacificmall_ssl.confを以下のように変更
rewrite ^(.*)$ https://hostname.example.com$request_uri permanent;
もともとhttpサイトで運用されてて、 httpsサイトへリダイレクトしたいときなど
etc...
KUSANAGIが使えるクラウド/VPS 28プラットフォーム以上
ぜひ、KUSANAGI使ってみてください!
https://kusanagi.tokyo/cloud/
Ad

Recommended

PDF
奥辞谤诲笔谤别蝉蝉を痴笔厂/クラウドで利用する际の注意点
Endoh Shingo
?
PDF
奥辞谤诲叠别苍肠丑大阪18迟丑
Go Imai
?
PPTX
20161115 okubo mt_cloud_handson
Six Apart
?
PDF
JAWSUG Osaka S3 CloudSearch
Takuro Sasaki
?
PPTX
サーバ?痴惭+コンテナ管理罢颈辫蝉蔼オンライン合宿2020
Yuki Nihei
?
PDF
第10回word bench熊本
Akinori Tateyama
?
PDF
奥辞谤诲笔谤别蝉蝉と飞别产サイトの常时蝉蝉濒化
Endoh Shingo
?
PPTX
WordCamp Kansai 2015 発表資料
Masahito Muratake
?
PDF
WordCamp Tokyo2016itkaasan
松田 千尋
?
PDF
もう一度基础から!奥辞谤诲笔谤别蝉蝉勉强会
Yutaro Fuji
?
PDF
笔贬笔别谤でもわかる!実践奥别产アクセシビリティ
shiori koga
?
PDF
Jawsug osaka10 service&regions
Takuro Sasaki
?
PDF
痴笔厂への一発奥辞谤诲笔谤别蝉蝉インストールスクリプト
Masayuki Maekawa
?
PDF
DevLove Kansai AWS
Takuro Sasaki
?
PDF
WordPress はどこへ向かう??コミュニティが支える未来?
Naoko Takano
?
PDF
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Takuro Sasaki
?
PDF
Innovation eggcloudnative
Takuro Sasaki
?
PDF
自治体サイトの奥辞谤诲笔谤别蝉蝉のメンテナンス
Masayuki Maekawa
?
PDF
笔奥础を使って奥别产齿搁コンテンツをオフラインで动くようにする手顺について
WheetTweet
?
PDF
WordCamp Tokyo 2018 by ocws
kouki okuda
?
PDF
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
?
PDF
Learning jQuery
taiju higashi
?
PDF
厂濒别谤か?补飞蝉て?运用してきた话
Sato Shun
?
PDF
笔贬笔开発とクラウド
晋也 古渡
?
PPTX
WordCamp Kansai 2016 ハンス?オン- -基本機能をおさらいしよう! WordPress のインストールから
Kitani Kimiya
?
PDF
初心者でもすぐできる Wordpress バックアップのススメ
Seiichiro Mishiba
?
PDF
Rubyで操るAWS 第67回Ruby関西 勉強会
Takuro Sasaki
?
PPTX
20160720 okubo mt_cloud_handson
Six Apart
?
PDF
WordCamp Yokohama 2010 Komori
masaaki komori
?
PDF
WordBench Saitama vol.6
masaaki komori
?

More Related Content

What's hot (20)

PDF
WordCamp Tokyo2016itkaasan
松田 千尋
?
PDF
もう一度基础から!奥辞谤诲笔谤别蝉蝉勉强会
Yutaro Fuji
?
PDF
笔贬笔别谤でもわかる!実践奥别产アクセシビリティ
shiori koga
?
PDF
Jawsug osaka10 service&regions
Takuro Sasaki
?
PDF
痴笔厂への一発奥辞谤诲笔谤别蝉蝉インストールスクリプト
Masayuki Maekawa
?
PDF
DevLove Kansai AWS
Takuro Sasaki
?
PDF
WordPress はどこへ向かう??コミュニティが支える未来?
Naoko Takano
?
PDF
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Takuro Sasaki
?
PDF
Innovation eggcloudnative
Takuro Sasaki
?
PDF
自治体サイトの奥辞谤诲笔谤别蝉蝉のメンテナンス
Masayuki Maekawa
?
PDF
笔奥础を使って奥别产齿搁コンテンツをオフラインで动くようにする手顺について
WheetTweet
?
PDF
WordCamp Tokyo 2018 by ocws
kouki okuda
?
PDF
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
?
PDF
Learning jQuery
taiju higashi
?
PDF
厂濒别谤か?补飞蝉て?运用してきた话
Sato Shun
?
PDF
笔贬笔开発とクラウド
晋也 古渡
?
PPTX
WordCamp Kansai 2016 ハンス?オン- -基本機能をおさらいしよう! WordPress のインストールから
Kitani Kimiya
?
PDF
初心者でもすぐできる Wordpress バックアップのススメ
Seiichiro Mishiba
?
PDF
Rubyで操るAWS 第67回Ruby関西 勉強会
Takuro Sasaki
?
PPTX
20160720 okubo mt_cloud_handson
Six Apart
?
WordCamp Tokyo2016itkaasan
松田 千尋
?
もう一度基础から!奥辞谤诲笔谤别蝉蝉勉强会
Yutaro Fuji
?
笔贬笔别谤でもわかる!実践奥别产アクセシビリティ
shiori koga
?
Jawsug osaka10 service&regions
Takuro Sasaki
?
痴笔厂への一発奥辞谤诲笔谤别蝉蝉インストールスクリプト
Masayuki Maekawa
?
DevLove Kansai AWS
Takuro Sasaki
?
WordPress はどこへ向かう??コミュニティが支える未来?
Naoko Takano
?
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Takuro Sasaki
?
Innovation eggcloudnative
Takuro Sasaki
?
自治体サイトの奥辞谤诲笔谤别蝉蝉のメンテナンス
Masayuki Maekawa
?
笔奥础を使って奥别产齿搁コンテンツをオフラインで动くようにする手顺について
WheetTweet
?
WordCamp Tokyo 2018 by ocws
kouki okuda
?
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
?
Learning jQuery
taiju higashi
?
厂濒别谤か?补飞蝉て?运用してきた话
Sato Shun
?
笔贬笔开発とクラウド
晋也 古渡
?
WordCamp Kansai 2016 ハンス?オン- -基本機能をおさらいしよう! WordPress のインストールから
Kitani Kimiya
?
初心者でもすぐできる Wordpress バックアップのススメ
Seiichiro Mishiba
?
Rubyで操るAWS 第67回Ruby関西 勉強会
Takuro Sasaki
?
20160720 okubo mt_cloud_handson
Six Apart
?

Similar to 20191204冲奥辞谤诲笔谤别蝉蝉の教科书出版记念イベント冲ハ?フォーマンスチューニンク?とセキュリティ冲小川 (8)

PDF
WordCamp Yokohama 2010 Komori
masaaki komori
?
PDF
WordBench Saitama vol.6
masaaki komori
?
PDF
WordCamp2012 テストサーバーでWordPressを構築しよう
H2O Space. Co., Ltd.
?
PDF
第2回Web技術勉強会 webパフォーマンス改善編
tzm_freedom
?
PDF
奥辞谤诲颁补尘辫翱蝉补办补2012セッション资料
horike37
?
PDF
WordPress 高速化 Pro Tips: フロントエンドの最適化
masaaki komori
?
PPTX
要確認!貴方のWord pressは損をしている!? ?読み込み速度の重要性について?
ssuser224b06
?
PDF
20191204冲奥辞谤诲笔谤别蝉蝉の教科书出版记念イベント冲书籍の绍介と执笔里话冲穂苅
Tomoya Hokari
?
WordCamp Yokohama 2010 Komori
masaaki komori
?
WordBench Saitama vol.6
masaaki komori
?
WordCamp2012 テストサーバーでWordPressを構築しよう
H2O Space. Co., Ltd.
?
第2回Web技術勉強会 webパフォーマンス改善編
tzm_freedom
?
奥辞谤诲颁补尘辫翱蝉补办补2012セッション资料
horike37
?
WordPress 高速化 Pro Tips: フロントエンドの最適化
masaaki komori
?
要確認!貴方のWord pressは損をしている!? ?読み込み速度の重要性について?
ssuser224b06
?
20191204冲奥辞谤诲笔谤别蝉蝉の教科书出版记念イベント冲书籍の绍介と执笔里话冲穂苅
Tomoya Hokari
?
Ad

Recently uploaded (7)

PDF
础滨技术共有会2025-06-05冲顿别别辫搁别蝉别补谤肠丑の理解と実践.辫诲蹿
Takuma Oda
?
PPTX
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
PDF
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
?
PPTX
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
PPTX
色について.pptx .
iPride Co., Ltd.
?
PPTX
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
?
础滨技术共有会2025-06-05冲顿别别辫搁别蝉别补谤肠丑の理解と実践.辫诲蹿
Takuma Oda
?
Vibe Codingを始めよう ?Cursorを例に、ノーコードでのプログラミング体験?
iPride Co., Ltd.
?
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
?
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
?
勉強会_ターミナルコマント?入力迅速化_20250620. pptx. .
iPride Co., Ltd.
?
色について.pptx .
iPride Co., Ltd.
?
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
?
Ad

20191204冲奥辞谤诲笔谤别蝉蝉の教科书出版记念イベント冲ハ?フォーマンスチューニンク?とセキュリティ冲小川