【軽量化】 503エラーゼロ大作戦 【統合】
このページまでのあらすじ
さくらのレンタルサーバ のリソース情報を見ていたら、何と503エラーが頻発していることに気がつきました。
しかも、1度や2度じゃなく100回以上出ていました。
php.cgiエラーを修正し、不正なアクセスをリダイレクトで吹き飛ばすようになってからと言うもの、その傾向はさらに強まり、ついには500エラーが200回を超えました。
これでは、せっかく閑古鳥しかいないうちのような潰れかけサイトに来てくれるはずだったお客さまを、みすみす逃してしまうことにもなりかねない。
これはイカンザキと言うことで、対策を取るべく試行錯誤の日々が始まりました。
作戦その1 画像ファイルへのクローラーのアクセスを制限
ファイルサイズが大きい画像ファイルへのアクセスをrobot.txtとhtaccessファイルで制限しました。
大抵はrobot.txtで制限できるのですが、それでも漏れたやつはhtaccessで制限する形にしました。
# robot.txt
User-agent: *
Disallow: /画像フォルダ名/
# htaccessファイルの画像の直アクセス禁止
SetEnvIf Referer "^(.+\.)?●●●\.▲▲▲" ok_url
<Files ~ "\.(gif|jpe?g|png|svg)$">
order deny,allow
deny from all
allow from env=ok_url
</Files>
画像の入っているフォルダ名が image と言うフォルダ名だとしてたら、Disallow: /画像フォルダ名/ は、Disallow: /image/ になります。
aaa.com の場合、●●●\.▲▲▲は aaa\.com になります。
作戦その2 ファイルの統合
テンプレートのファイルの中で、統合できるものはできるだけ統合しました。
(フッター用のテンプレートとサイドバー用のテンプレートなど)
その他は、CSSをできるだけ統合しました。
(加工しにくくなるので、できればCSSは統合しとうなかった。(T^T) )
作戦その3 更新履歴を簡素化
サイドバーに出していた更新履歴のファイルがかなり大きくなってしまっていたので、最新の更新履歴だけ残して、その他の更新履歴は今までの更新履歴として別ページに移動することにしました。
(実は、<iframe> で数年ぶんの更新履歴を全部読み込んでいたのはここだけの秘密。。。
( ̄m ̄))
作戦その4 画像の質を落とした
テンプレートに使っているPNGファイルは、PNG-24ではなくPNG-8で保存しなおした。
pngファイルは背景を透明化してPNG-8で保存すると汚くなるので、透明化しなくても良いものに変えた。
PNG-8 透明の背景の縁がガタガタ ファイルサイズ : 16kb |
PNG24 透明の背景の縁が滑らか ファイルサイズ : 27kb |
PNG-8 サイズは少ないけど PNG24とファイルと遜色ない ファイルサイズ : 14kb |
PNG-24 PNG-8よりもファイルサイズが大きい 見た目はさほど変わらない ファイルサイズ : 39kb |
背景が透明
PNG-8
縁がガタガタ
ファイルサイズ : 2kb
PNG-24
縁が滑らか
ファイルサイズ : 4kb
背景白塗り
PNG-8
縁が滑らか
ファイルサイズ : 2kb
PNG-24
縁が滑らか
ファイルサイズ : 3kb
作戦その5 外部スクリプトをできるだけ排除した
サイドバーのTwitterウィジェットが重いようだったので、サイドバーのTwitterウィジェットを削除しました。
また、ダブルでかけていたアクセス解析をGoogleAnalysisだけにしました。
その他、サイドバーに広告を入れていたサイトは、広告タグを取り去りました。
作戦その6 アイコンのファイルサイズを縮小した
パソコンでWEBサイトやブログを表示すると、ブラウザにアイコンみたいなのが表示されます。
これは、ファビコンと言われるものを表示しています。
ファイル名は、favicon.ico です。
これをWEBサイトやブログのドメインのトップに置きます。
こうすることで、ブラウザがそのWEBサイトやブログを表示するときに、favicon.ico を自動で読み込んでくれるのです。
また、iPhoneでブックマークする時などは、144px X 144px の apple-touch-icon.png と言う画像ファイルを用意しておけば、それを読み込んでブックマークのアイコンとして表示してくれます。
いずれの場合も画像ファイルですので、上に書いたようにPNG-8で画像を保存すれば、ファイルサイズをかなり減らせます。
作戦その7 CSSファイルの修正
かなりグッチャグチャだったCSSファイルを修正しました。
何度も何度も悪い部分を修正し、余計な部分を削り、できるだけファイルサイズを減らしました。
作戦その8 SVCファイルをPNGファイルに入れ替え
アイコンなどのテンプレート用の画像には、SVCファイルを使っていました。
これは、点と線と面と色の情報を持ったファイルで、PNGファイルやJPEGファイルとは違った類のものです。
点と線と面と色の情報ですので、拡大縮小しても画像がボケボケにならないのが良い点でした。
でも、一部でバグることがあったり(HTMLファイルに干渉して表示がおかしくなる)、ファイルサイズが大きくなってしまったりしたので、この際に全部PNG-8で保存しなおしました。(;´_`;)
(SVGファイルを作るために心血を注いだ日々が無駄になってしまった件)
(HTMLファイルに干渉して表示がおかしくなってしまった例)
作戦の結果
作戦1〜4辺りまでをやって、503エラーは減りました。
503エラーが出たユーザー数はだいぶ減りました。
その他、転送量も減りました。
でも、目に見えて猛烈に減りませんでした。
その後、作戦5〜8をやったところで、ついに503エラーゼロを達成しました。
ただし、CPUと転送量は増えてしまいましたので、単純に負荷が軽減しただけ・・・と言うわけでもなさそうです。(;´∀`)
共用サーバーですので、ただ単に同居している方のサーバー稼働が減少して軽くなっただけしただけなのかもしれませんし、今後も気を抜かずに要観察していくつもりです。
(飽きなければですが。( ̄m ̄))
各ページの表示スピードはかなり早くなりました。
なので、503エラーはあまり減らなくとも、検索やリンクなどからの離脱率は減少する・・・かも?です。
(減らなかったら頑張り損ですわー(T^T) )
うんまあ、ページによってはしゃーないですね。(;´∀`)
画像いっぱい使ってたら、重くなるのは当然ですし。。。
(Scriptで読み込み遅延とかさせると、セキュリティだのScriptOFFでの動作不良だの、それはそれで色々と問題がががが・・・)
その後の状態その1 - 503エラーが乱高下 -
さくらレンタルサーバーへ移転後、2週間以上経ちましたが、503エラーゼロ大作戦実行後も、実はポツポツと503エラーは出てまして。
ポツポツと言うか、503爆弾をドカンドカン降らされている感じです。
Google Analyticsのアクセス解析に残るアクセス数の増減とは違う要因で503エラーが増減しているようで、どうも怪し気な雰囲気です。
(ひょっとして、サーバーの負荷の影響かな?)
そのようなわけで、何となく再度のサーバー移転を検討し始めてる今日この頃だったりします。
(PHPでテンプレート化したサイトを運営しているので、次はPHPに強いサーバーがいいな。(;´_`;))
その後の状態その2 - 503エラーが本当にゼロになった -
テンプレートの読み込みを PHP から SSI に変更したところ、圧縮が効くようになりました。
また、圧縮後のページの表示スピードはかなり早くなりました。
Google Pagespeed insights での成績も向上しました。
それと共に、503エラーが出なくなりました。
まさかとは思ったんですが、数日経っても503エラーは出ずに非常に安定しています。
その後さらに数日。
やはり503エラーはゼロのままです。
非常に安定しています。
この安さで、この速度で、この安定性なら言うことありません。ヘ(^д^ )
今後も安心してさくらのレンタルサーバを使っていけます。
ちなみに、私が気になっているエックスサーバーでもSSIが使えるようですので、もし今使ってるさくらのレンタルサーバ スタンダードがキツキツになってきたら、エックスサーバーに移転する予定です。
(サーバーによって、HTMLファイルをSHTMLファイルとして読み込むApacheのコードなどが異なりますので、お試し期間中に実験が必要になるとは思いますが)
今はかなりスカスカ状態ですので、これがキツキツになるためには、相当なアクセスアップが必要ではありますが。。。(;´_`;)
次ページ
前ページ
広告