web-dev-qa-db-ja.com

Nginxキャッシングの実装に失敗しました-接続は拒否されました

Nginxキャッシングを実装しようとした後、サイトを機能させることができません。

Ubuntu 16.04(xenial)、Nginx(1.10.3)、PHP-FPM(7.0)およびWordPressを使用します。

ポート9000(php-fpm用)はUFWによってフィルタリングされません。

環境を再現する

1-設定の設定:

2-キャッシュディレクトリの作成:

mkdir -p /var/cache/nginx/fastcgi_temp/cache/
chmod 755 /var/cache/nginx/fastcgi_temp/cache/
chown www-data:www-data /var/cache/nginx/fastcgi_temp/cache/

3-サーバーの再起動:

systemctl restart nginx.service
/etc/init.d/php*-fpm restart

4-エラーおよびデバッグの試行:

*1 connect() failed (111: Connection refused) while connecting to upstream,
client: MY_IP_ADDRESS, server: example.com, request: "GET /
HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000".

ブラウザは以下を提供します:

502 Bad Gateway nginx/1.10.3 (Ubuntu)

デバッグ:

/etc/init.d/php*-fpm status

もたらす:

● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-04-27 07:09:28 UTC; 3s ago
  Process: 16336 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
 Main PID: 16346 (php-fpm7.0)
   Status: "Ready to handle connections"

私の質問

接続が拒否され、サイトがダウンしているのはなぜですか?

NerdOfLinuxの更新:

+ curl -I example.com
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Content-Length: 194
Connection: keep-alive

そして

grep "listen" /etc/php/7.0/fpm/pool.d/www.conf | grep -v ";"
+ grep --color=auto -v ';'
+ grep --color=auto listen /etc/php/7.0/fpm/pool.d/www.conf
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
2
user9303970

問題は、存在しないバックエンド/アップストリームゲートウェイを指すためのnginx fastcgi_passディレクティブの設定ミスです。

14.10(または15.10だったので、今は正確に覚えていません)php-fpmは、デフォルトでTCPポート9000ではなく、ローカルUNIXソケットでリッスンします。これを知っているのは、FPMのデフォルトとしてUbuntuとDebianでこの変更を行う努力を先導し、パッケージングで受け入れられたからです。そして、FPMのlisten =www.confがソケットでリッスンしているため、これがセットアップであることを知っています。

unix:/run/php/php7.0-fpm.sockでなく、nginxサーバーブロックのfastcgi_passディレクティブに127.0.0.1:9000を配置します。これにより、正しいPHPアップストリームゲートウェイが使用されるため、適切に動作するようになります。

2
Thomas Ward