さくらのVPS契約&wordpress周りの再設定
先日、さくらのVPSを契約し、yusukezzz.netのコンテンツ全てを移行しました
その際、wordpress周りの設定を大分弄ったので備忘録として残しておきます
パフォーマンスの指標として今回はYSlowを使って測定しました
変更前は記録していないのですが、確かGrade Dで50台だったと思います…
設定内容はググって出てきたものをほとんどコピペしてるだけです
まずはhttpd.conf
<VirtualHost *>
~略
<Directory /your-htdocs-root>
AllowOverride All
Options FollowSymLinks -MultiViews
# gzip compress setting
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# ここからフィルター設定
FilterDeclare Compression CONTENT_SET
FilterProvider Compression DEFLATE Content-Type $text/plain
FilterProvider Compression DEFLATE Content-Type $text/css
FilterProvider Compression DEFLATE Content-Type $application/xhtml
FilterProvider Compression DEFLATE Content-Type $application/xml
FilterProvider Compression DEFLATE Content-Type $application/xhtml+xml
FilterProvider Compression DEFLATE Content-Type $application/rss+xml
FilterProvider Compression DEFLATE Content-Type $application/atom+xml
FilterProvider Compression DEFLATE Content-Type $application/x-javascript
FilterProvider Compression DEFLATE Content-Type $image/svg+xml
FilterProvider Compression DEFLATE Content-Type $text/html
FilterProvider Compression DEFLATE Content-Type $application/javascript
FilterChain Compression
# ここまでフィルター設定
# Don't append Vary heder for specific files
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|lzh|exe)$ dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
Header append Vary Accept-Encoding env=!dont-vary
# expires headers
<FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresActive On
ExpiresDefault "access plus 3 days"
</FilesMatch>
</Directory>
~略
</VirtualHost>
次にmysqlのクエリキャッシュ設定
[mysqld] # query cache query_cache_limit=1M query_cache_min_res_unit=4k query_cache_size=24M query_cache_type=1
最後に、wp-minify の導入
wp-minify はwordpress内で使用されているjavascript, cssを1ファイルにまとめてくれるプラグインです
インストール後、wp-minify/cache に書き込み権限を与えておきます
APCや eAcceralatorなどもある程度効果ありますね
yusukezzz.netはAPCを導入しています
以上の設定を施したところ、YSlowのスコアは以下のようになりました
Grade A
Overall performance score 90
後はhttpリクエスト数を減らせ(CSSスプライトが未実施)&CDN使え(パフォーマンスと無関係)の2点が評価悪いだけなので、今回はこの辺までで十分だと思います
#CDNについては about:config からYSlowの設定を弄ることで強制的にオレオレCDNを登録出来るそうですが、スコアが上がるだけなのでやってないです
CSSスプライトはテーマによっては対応してそうなので、もう少しいい評価になるかもしれません
#2011/02/19 追記
そもそも YSlow の RuleSet を Small site or Blog にするべきでした
その状態で計測するとスコアは94まで行きました
あと、下記チューニングの通りにデーモンを停止してみました
CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記)
#追記終了
以下参考サイト一覧(順不同)
DSAS開発者の部屋:負荷分散環境でブラウザキャッシュが効かないときは – ETagの解説 -
Webサイトの高速化 ルール13 ETagを正しく設定する! (Yahoo! developer netoworkより翻訳) | 株式会社インターオフィス
クラウド環境でのApacheの設定 | cloudrop
ゆっくりと… » WP MinifyでCSS/JavaScriptをまとめて軽量化、ページの応答速度を向上させる
mod_expires – Apache HTTP サーバ
YSlow対策でmod_expireを利用してHTTPレスポンスヘッダにExpiresを追加する – blog.katsuma.tv
Apacheで圧縮してコンテンツ配信しよう – takami_hirokiの日記
Apache 2.2 mod_filterを使いこなす – AddOutputFilterByType DEFLATE text/htmlを書き換えてみる « cyano
