Nginx、php-fpm、WordPress メモ

カテゴリー: 手順書,

LEMPの環境でfast-cgi設定時に調べたことのメモです

/etc/php-fpm.d/www.conf

Nginxとphp-fpmをsock接続するときphp-fpm.sockが消える件 – Qiita
https://qiita.com/shikigamix/items/ad02566903c5c1433b02

fastcgi_pass

fastcgi_pass の設定は下記2ファイルを同時に適用

/etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php-fpm.sock

/etc/nginx/conf.d/example.com.conf

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
systemctl restart php-fpm
systemctl restart nginx

php-fpm の再起動で /run/php-fpm に「php-fpm.sock」が生成される

キャッシュ除外

    # キャッシュ除外フラグ
    set $do_not_cache 0;

    # GET メソッド以外はキャッシュを作成しない
    if ($request_method != GET) {
        set $do_not_cache 1;
    }

    # 管理者クッキーがあるならキャッシュを利用しない
    if ($http_cookie ~ ^.*(wordpress_logged_in|wordpress_test_cookie|wordpress_no_cache|wp-postpass).*$) {
        set $do_not_cache 1;
    }

    # キャッシュ除外領域
    if ($request_uri ~* "/wp-admin/|/wp-includes/|/no-cache/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
        set $do_not_cache 1;
    }

    # キャッシュ除外領域
    location /no-cache/ {
        add_header Cache-Control no-cache;
        sendfile off;
        etag off;
        if_modified_since off;
            access_log off;
    }

※ /no-cache/ ディレクトリは自前のもの。通常は不要

location ディレクティブ

location ごとに適切に設定せねばならないので大変。
以下はサンプル

# php-fpm 設定
    location ~ \.php$ {
        try_files      $uri @wordpress;
        fastcgi_index  index.php;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_script_name;
        include        fastcgi_params;

        add_header            F-Cache $upstream_cache_status;
        fastcgi_cache         XXXXX;
        fastcgi_no_cache      $do_not_cache;
        fastcgi_cache_bypass  $do_not_cache;
        fastcgi_pass_header   X-Accel-Expires;
        fastcgi_cache_key     "$scheme://$host$request_uri$is_mobile";
        fastcgi_cache_valid   200 2h;
        fastcgi_cache_valid   301 302 1h;
        fastcgi_cache_valid   404 1m;
        fastcgi_cache_valid   500 1s;
        fastcgi_cache_valid   any 5m;
    }

※ try_filese 部分は独自
※ fastcgi_cache_bypass、大事
※ XXXXX は fastcgi_cache_path の keys_zone に合わせる


関連記事

関連記事はまだありません

手順書」のBookmark
「手順書」記事一覧