NginxからPHP-FPMのアクセスをTCPからUnix Socketに変更

CentOS8をセットアップしている時にdnf経由でインストールすると、nginxからphp-fpmのアクセスがUnix Socketを使っていたので、CentOS7の環境でもやってみた。

環境: CentOS 7.7.1908,  nginx 1.16.1, PHP 7.3.17

PHP-FPMの設定変更
# less /etc/php-fpm.d/www.conf
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = www
listen.mode = 0660

nginxの設定変更
# less /etc/nginx/conf.d/global/fastcgi_php.conf
fastcgi_pass unix:/run/php-fpm/www.sock;

再起動
# nginx -t
# systemctl restart php-fpm
# systemctl restart nginx


ついでにnginxの設定に「tcp_nopush」を追加。
これもCentOS8でdnf installしたらデフォルトでonになっていたから。
# less /etc/nginx/nginx.conf
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

tcp_nodelayはデフォルトでonだけれども一応書いておく。
全文はGistに置いてある。

再読み込み
# nginx -t
# systemctl reload nginx

開発環境でしばらく運用してから本番環境に反映させる予定。


【関連記事】