Webサーバの高速化

WordPressから文句言われた。遅いって。で対策した。

WardPressが言うには

  1. 永続オブジェクトキャッシュの使用を使用してください
  2. ページキャッシュが有効になっていない

1.は無視することにした。色々調べたが、レンタルサーバでは普通無理らしい。レンタルサーバでないので自力でやることはできるが、、、、

2.はapacheの設定でキャッシュを有効にすることにした。このキャッシュがサーバ側・クライアント側と別れて色々あるらしいが、深くは考えないことにした。

apacheの設定変更

下記モジュールを有効にする。

コマンドでもできるはずだが、webminを使用した。

  • Expires モジュール (mod_expires)
  • Headers モジュール (mod_headers)
  • cacheモジュール( mod_cache)
  • cache_diskモジュール(mod_cache_disk)
  • cache_socacheモジュール(mod_cache_socache) これは何かわからないが。。。。

モジュールを有効にして 設定変更 反映

cache cache_diskは/etc/apache2/mods-enabled/cache_disk.confで”CacheEnable disk /”がコメントアウトされているものを有効にする。

expires headersは”/etc/apache2/sites-enabled/ssl.conf”に下記を追加した。sslポートでアクセスするとここの設定に来るので。別件で、少なくともWordPressではこの設定がいらないと判明した。WordPressが(プラグインなどで)この設定を実施するので別途する必要がない。もともとコンテンツに合わせて調整するので、一括で設定するのは危険なんですよね。

        ExpiresActive On

ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/jpeg "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType image/svg+xml "access plus 1 weeks"
ExpiresByType image/webp "access plus 1 weeks"
ExpiresByType text/css "access plus 1 weeks"
ExpiresByType text/javascript "access plus 1 weeks"
ExpiresByType application/javascript "access plus 1 weeks"
ExpiresByType font/woff "access plus 1 weeks"
ExpiresByType font/woff2 "access plus 1 weeks"

<FilesMatch "\.(gif|jpe?g|png|svgz?|webp)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>

<FilesMatch "\.(css)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>

<FilesMatch "\.(js)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>

<FilesMatch "\.(woff2?)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>

apacheを再起動

systemctl restart apache2

結果

うまく行かない。少しは体感早くなったんだが。サーバ、遅いときが多いんだよね。

ページキャッシュは、ユーザーがアクセスするたびにページを読み込むのではなく、静的なページを保存して提供することで、サイトの速度とパフォーマンスを向上させます。

ページキャッシュの検出は、有効化されたページキャッシュプラグインの検索のほか、ホームページへのリクエストを3回行い、以下のHTTPクライアントキャッシュレスポンスヘッダーのうち1つ以上の検索で行います:

cache-control, expires, age, last-modified, etag, x-cache-enabled, x-cache-disabled, x-srcache-store-status, x-srcache-fetch-status.
サーバーの応答時間の中央値は1,426ミリ秒でした。推奨されるしきい値600ミリ秒以下の時間でなければなりません。
1個のクライアントキャッシュレスポンスヘッダーを検出しました: cache-control.
ページキャッシュについてもっと詳しく(新しいタブで開く)

結局WardPressのプラグイン(WP Fastest Cache)を入れて設定

  • システムキャッシュを有効化
  • 先読み
    • 方式を選択
      • Default
    • コンテンツタイプ(以下のチェックをON)
      • ホームページ
      • 投稿
      • カテゴリー
      • タグ
    • 先読み設定
      • 一分あたりのページ数4
      • 完了後に先読み再スタート
  • Gzip(サーバーから送信されるファイルのサイズを減らす)
  • ブラウザ キャッシュ(リピート訪問者のページ読み込み時間を減らす)
  • Language 日本語

無事、警告が出なくなりました。でも、速度は生物だからまた出るかも。

備考

プラグインをいくつか導入してみたのだが、ファイルがすでにあると言って入らないものが、、、
直近おかしくなっていたのは、ファイルシステムが壊れていたのか、WPのVerUPでプラグインに不具合が発生したのかよくわからなかった。どうも色々ゴミが残ってるようだ。さてどうしたものか、どれがゴミかわからないんだよね。

後日談

まだまだありそう。

別件で壊して直してたら、、リンク参照  これに合わせて記事修正。応答時間も早くなった。

コメント

タイトルとURLをコピーしました