Raspberry Pi 2 サーバー ★ 高速化 ② Nginx の Proxy Cashe を設定
前回の記事で Apache2 から Nginx に移行しましたが、それだけでは特に早くなりませんでした。なので、Proxy Cashe を設定しました。
結果、圧倒的な効果!
行った設定を記録します。
目次
キャッシュ用ディレクトリ設定
キャッシュ用ディレクトリの作成、権限変更
1 2 3 4 5 |
cd /var/cache sudo mkdir nginx cd nginx sudo mkdir cache sudo chown -R www-data:www-data cache |
所有者:グループは Nginx の設定と合わせます。
Nginx.conf の設定
nginx.conf を編集します。
1 |
sudo vi /etc/nginx/nginx.conf |
※このファイルはnginxの全体設定ファイルですが、設定場所は個別のサイト用ファイルでも良いようです。
下記を、「 http{ 」の中に追加します。
1 |
proxy_cache_path /var/cache/nginx/cache levels=1 keys_zone=cache_hmg:4m inactive=7d max_size=50m; |
ここで暫く嵌ったのですが、include より上に書かなきゃいけませんでした。
1 2 3 4 5 6 7 8 9 10 11 |
## # Proxy Cache Settings ## proxy_cache_path /var/cache/nginx/cache levels=1 keys_zone=cache_hmg:4m inactive=7d max_size=50m; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; |
- proxy_cache_path:先程作成したキャッシュを作成する場所
- levels:キャッシュを作成する階層
- keys_zone:キャッシュゾーンの名前とメモリサイズ…あまり意味がわかっていません…ここで設定した名前を後で指定します
- inactive=7d:七日間アクセスの無いキャッシュを削除
- max_size=50m:保存できるキャッシュの最大サイズ(今はページ自体が容量でかいから もっと増やしても良いかも)
サイト用ファイルの設定
1 |
sudo vi /etc/nginx/sites-available/default |
下記のように設定しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
upstream backend { server 127.0.0.1:8080; } // Proxy Cashe の設定 server { listen 80; server_name homemadegarbage.0t0.jp; location / { # WordPress ログイン中、コメント書き込み、パスワード保護ページでは無効 if ($http_cookie ~ ^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$) { set $do_not_cache 1; } proxy_no_cache $do_not_cache; proxy_cache_bypass $do_not_cache; proxy_pass http://backend; proxy_cache cache_hmg; proxy_cache_key $scheme$proxy_host$uri$is_args$args; proxy_cache_valid 200 1d; } } // 前回設定した所。listen を8080にする。 server { listen 8080; root /var/share/www-hiro/hmg; index index.html index.php; server_name homemadegarbage.0t0.jp; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } location ~ /\.ht { deny all; } location ~* /wp-config.php { deny all; } } |
構文チェック
1 |
sudo nginx -t |
OK
1 2 |
ginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
※sudo つけないと Permission denied となります。
Nginx 再起動
1 |
sudo service nginx restart |
Proxy Cache 設定前と後の速度比較
設定前
設定後
Page Load Time が半分以下になりました!!
ページの根本的な重さも解消していこうと思います。ぼちぼち・・・
参考にさせて頂きました
- 【nginx】【超高速】 WordPress のウェブサーバーを nginx にして、プロキシキャッシュを使ってパフォーマンスをとても向上させるまでの試行錯誤です!【Apache からの卒業】 – oki2a24
- WordPressをNginxのProxy cacheを使用して高速化&負荷軽減する方法 | 経験知
- wordpressを超高速化!nginxでproxy cacheを使う | standlog