Не удалось реализовать кэширование Nginx - соединение, которому отказывают

Я испытываю затруднения, заставляя мой сайт работать после попытки реализовать кэширование Nginx.

Я использую (гостеприимную) Ubuntu 16.04, Nginx (1.10.3), PHP-FPM (7.0) и WordPress.

Порт 9000 (для php-fpm) не фильтрован UFW.

Репродуцирование моей среды

1 - установка confs:

2 - Создание dir кэша:

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
задан 27 April 2018 в 16:58

2 ответа

Проблемой в действии является неверная конфигурация Вами nginx fastcgi_pass директива для указания на несуществующий шлюз бэкенда/восходящего потока.

С тех пор 14.10 (или было это 15.10, я не помню теперь точно), php-fpm слушает на локальном сокете UNIX и не порте TCP 9000 по умолчанию. Я знаю это, потому что я возглавил усилие внести это изменение в Ubuntu и Debian для значений по умолчанию для FPM, и это было принято в упаковке. И я знаю, что это - Ваша установка из-за listen = строка Вашего FPM www.conf который говорит его слушание относительно сокета.

Поместить unix:/run/php/php7.0-fpm.sock в Вашем fastcgi_pass директива в nginx блок сервера, а не 127.0.0.1:9000 Вы имеете. Это должно затем позволить этому работать правильно, потому что корректный PHP восходящий шлюз затем используется.

2
ответ дан 2 December 2019 в 04:44

зарегистрируйтесь в своем определении пула php-fpm, которое должно быть найдено в /etc/php/7.0/fpm/pool.d

Пользовательские www-данные используются для выполнения php-fpm:

user = www-data group = www-data

-1
ответ дан 2 December 2019 в 04:44

Другие вопросы по тегам:

Похожие вопросы: