Появляется 502 Bad Gateway nginx

12
S
На сайте с 21.12.2019
Offline
30
1778

На форуме phpbb 3.2 отправляю Ббкод и выскакивает такая ошибка 502 Bad Gateway nginx

Версия PHP: 7.0.33

Версия phpBB: 3.2.7

Причем она появляется не более чем через 1-2 сек.

Такие ошибки в этот момент

[26-Dec-2019 01:50:54] NOTICE: [pool сайт] child 4803 exited with code 0 after 350.377717 seconds from start

[26-Dec-2019 01:50:54] NOTICE: [pool сайт] child 5165 started
[26-Dec-2019 01:52:20] NOTICE: [pool сайт] child 4866 exited with code 0 after 383.520841 seconds from start
[26-Dec-2019 01:52:20] NOTICE: [pool сайт] child 5241 started
[26-Dec-2019 01:55:28] NOTICE: [pool сайт] child 5049 exited with code 0 after 389.673110 seconds from start
[26-Dec-2019 01:55:28] NOTICE: [pool сайт] child 5398 started
[26-Dec-2019 01:56:44] NOTICE: [pool сайт] child 5165 exited with code 0 after 350.384562 seconds from start
[26-Dec-2019 01:56:44] NOTICE: [pool сайт] child 5613 started
[26-Dec-2019 01:56:53] WARNING: [pool сайт] child 5241 exited on signal 6 (SIGABRT) after 273.096408 seconds from start
[26-Dec-2019 01:56:53] NOTICE: [pool сайт] child 5616 started

2019/12/26 01:56:53 [error] 4651#4651: *1166 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 84.51.206.125, server: сайт.ru, request: "POST /forum/adm/index.php?i=acp_bbcodes&sid=609b431a94ea03a2b6cf7b0110035b5d&mode=bbcodes&action=modify&bbcode=45 HTTP/1.1", upstream: "fastcgi://unix:/var/www/php-fpm/сайт.sock:", host: "сайт.ru", referrer: "http://сайт.ru/forum/adm/index.php?i=acp_bbcodes&sid=609b431a94ea03a2b6cf7b0110035b5d&mode=bbcodes&action=edit&bbcode=45"

PS: Адрес заменил на "сайт"

lonelywoolf
На сайте с 23.12.2013
Offline
151
#1

У вас Nginx по таймауту отваливается потому, что долго выполняется скрипт. И проблема может быть совсем не в Nginx, а в БД. Поэтому в студию параметры сервера и размер БД для начала дайте.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
S
На сайте с 21.12.2019
Offline
30
#2

В том то и дело, что скрипт отваливается именно при этом действии, выполняется не более 1-3 сек, хотя другие запросы явно идут дольше.

3 X Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz,

Размер базы данных: 670.95 МБ

Сервер базы данных: MySQL(i) 5.6.41

По второй ошибке грешу на

# Скрипты php

location ~ [^/]\.php(/|$) {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@сай.ru";
fastcgi_pass unix:/var/www/php-fpm/сайт.sock;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location @fallback {
access_log off ;
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f admin@сайт.ru";
fastcgi_pass unix:/var/www/php-fpm/сайт.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}

ssi on;
access_log /var/www/httpd-logs/сай.ru.access.log ;

rewrite ^/thumb/(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ /download/file.php?id=$1&t=1;
rewrite ^/pic/(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ /download/file.php?id=$1&mode=view;
rewrite ^/small/(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ /download/file.php?id=$1;
rewrite ^/img/(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ /download/file.php?id=$1;
listen 185.58.205.240:80 default_server;

Хотя может я и не прав.

lonelywoolf
На сайте с 23.12.2013
Offline
151
#3
sincera:
В том то и дело, что скрипт отваливается именно при этом действии, выполняется не более 1-3 сек, хотя другие запросы явно идут дольше.

У вас в логе явно написано, что PHP завершается через 300+ секунд. Тоже аймаут.


child 5241 exited on signal 6 (SIGABRT) after 273.096408 seconds from start

т.е. PHP продолжает работать. Судя по количеству ядер, у вас там ОЗУ достаточно, теперь нужно посмотреть. Включите отладку и посмотрите логи ошибок именно PHP. Так же не плохо было бы видеть нагрузку в момент запроса и понимать какую-то предысторию, после чего началось.

В тупую - покажите max_memory_limit из php.ini и выполните mysqlcheck --all-databases --auto-repair --optimize в консоли сервера.

Нужны логи, или какая-то предыстория. Пока понятно, что php виснет на каком-то этапе. Он может ждать ответа от БД, может зависнуть в каком-то бесконечном цикле или ещё чего. А может, в коде у вас где-то перехватываются события ошибок. Нам нужны логи, проблема слишком общая.

Попробуйте включить вывод ошибок PHP, если он отключен.

S
На сайте с 21.12.2019
Offline
30
#4

SQL ERROR [ mysqli ]

Table './southklad_forum/phpbb_posts' is marked as crashed and last (automatic?) repair failed [144]

SQL

SELECT t.*, f.forum_name, f.parent_id, f.forum_parents, f.left_id, f.right_id, fp.post_text AS first_post_text, fpu.user_avatar AS fp_avatar, fpu.user_avatar_type AS fp_avatar_type, fpu.user_avatar_width AS fp_avatar_width, fpu.user_avatar_height AS fp_avatar_height FROM (phpbb_topics t) LEFT JOIN phpbb_forums f ON (f.forum_id = t.forum_id) LEFT JOIN phpbb_posts fp ON (fp.post_id = t.topic_first_post_id) LEFT JOIN phpbb_users fpu ON (fpu.user_id = t.topic_poster) WHERE t.topic_id IN ('27', '24728', '5738', '24772', '24765', '7597', '14729', '11000') ORDER BY t.topic_last_post_time DESC LIMIT 8

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 997
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 193
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/mysql_base.php
LINE: 45
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 270
CALL: phpbb\db\driver\mysql_base->_sql_query_limit()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 321
CALL: phpbb\db\driver\driver->sql_query_limit()

FILE: [ROOT]/ext/paybas/recenttopics/core/recenttopics.php
LINE: 365
CALL: phpbb\db\driver\factory->sql_query_limit()

FILE: [ROOT]/ext/paybas/recenttopics/event/listener.php
LINE: 92
CALL: paybas\recenttopics\core\recenttopics->display_recent_topics()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 184
CALL: paybas\recenttopics\event\listener->display_rt()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 46
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/index.php
LINE: 251
CALL: phpbb\event\dispatcher->trigger_event()

Полажил форум данной командой mysqlcheck --all-databases --auto-repair --optimize

---------- Добавлено 26.12.2019 в 18:11 ----------

Предыстория такова, что данная ошибка возникает пока что только в редактировании Ббкодов, больше нигде. Обработка реально занимает 1-3 сек, не более, могу даже видео записать, нажимаю отправить, и все выпадает ошибка.

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.
; Note: This directive is hardcoded to -1 for the CLI SAPI
; Default Value: -1 (Unlimited)
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://php.net/max-input-time
max_input_time = 60

; Maximum input variable nesting level
; http://php.net/max-input-nesting-level
;max_input_nesting_level = 64

; How many GET/POST/COOKIE input variables may be accepted
; max_input_vars = 1000

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 512M


---------- Добавлено 26.12.2019 в 18:17 ----------

А вот эта ошибка о чем говорит?

2019/12/26 01:56:53 [error] 4651#4651: *1166 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 84.51.206.125, server: сайт.ru, request: "POST /forum/adm/index.php?i=acp_bbcodes&sid=609b431a94ea03a2b6cf7b0110035b5d&mode=bbcodes&action=modify&bbcode=45 HTTP/1.1", upstream: "fastcgi://unix:/var/www/php-fpm/сайт.sock:", host: "сайт.ru", referrer: "http://сайт.ru/forum/adm/index.php?i=acp_bbcodes&sid=609b431a94ea03a2b6cf7b0110035b5d&mode=bbcodes&action=edit&bbcode=45"
S
На сайте с 21.12.2019
Offline
30
#5

Включил дебаг

2019/12/26 21:23:24 [crit] 24710#24710: *157983 connect() to unix:/var/www/php-fpm/southklad.sock failed (2: No such file or directory) while connecting to upstream, client: 31.23.92.51, server: southklad.ru, request: "POST /forum/chat?build=1542136080 HTTP/1.1", upstream: "fastcgi://unix:/var/www/php-fpm/southklad.sock:", host: "southklad.ru", referrer: "http://southklad.ru/forum/chat"
2019/12/26 21:23:42 [error] 24710#24710: *163072 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 84.51.206.125, server: southklad.ru, request: "POST /forum/adm/index.php?i=acp_bbcodes&sid=4a693988c5f7542ce830aa3995ce7084&mode=bbcodes&action=modify&bbcode=17 HTTP/1.1", upstream: "fastcgi://unix:/var/www/php-fpm/southklad.sock:", host: "southklad.ru", referrer: "http://southklad.ru/forum/adm/index.php?i=acp_bbcodes&sid=4a693988c5f7542ce830aa3995ce7084&mode=bbcodes&action=edit&bbcode=17"



---------- Добавлено 26.12.2019 в 18:23 ----------

[26-Dec-2019 21:23:24.909431] DEBUG: pid 12697, fpm_scoreboard_init_main(), line 40: got clock tick '100'
[26-Dec-2019 21:23:24.909572] DEBUG: pid 12697, fpm_event_init_main(), line 337: event module is epoll and 1 fds have been reserved
[26-Dec-2019 21:23:24.909621] NOTICE: pid 12697, fpm_init(), line 85: fpm is running, pid 12697
[26-Dec-2019 21:23:24.910255] DEBUG: pid 12697, fpm_children_make(), line 421: [pool сайт] child 12700 started
[26-Dec-2019 21:23:24.910285] DEBUG: pid 12697, fpm_event_loop(), line 366: 11880 bytes have been reserved in SHM
[26-Dec-2019 21:23:24.910290] NOTICE: pid 12697, fpm_event_loop(), line 367: ready to handle connections
[26-Dec-2019 21:23:25.911341] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 1 spare children, 1 running children. Spawning rate 1
[26-Dec-2019 21:23:26.912396] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 0 spare children, 1 running children. Spawning rate 1
[26-Dec-2019 21:23:26.912999] DEBUG: pid 12697, fpm_children_make(), line 421: [pool сайт] child 12704 started
[26-Dec-2019 21:23:26.913013] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 428: [pool сайт] 1 child(ren) have been created dynamically
[26-Dec-2019 21:23:27.913113] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 2
[26-Dec-2019 21:23:28.914191] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:29.915259] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:30.916326] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:31.917105] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:32.918179] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:33.919241] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:34.920306] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:35.921392] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:36.922451] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:37.923522] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:38.924588] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:39.925683] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:40.926819] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:41.927913] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:42.334339] DEBUG: pid 12697, fpm_got_signal(), line 76: received SIGCHLD
[26-Dec-2019 21:23:42.334398] WARNING: pid 12697, fpm_children_bury(), line 252: [pool сайт] child 12700 exited on signal 6 (SIGABRT) after 17.424155 seconds from start
[26-Dec-2019 21:23:42.334992] NOTICE: pid 12697, fpm_children_make(), line 421: [pool сайт] child 12741 started
[26-Dec-2019 21:23:42.335005] DEBUG: pid 12697, fpm_event_loop(), line 419: event module triggered 1 events
[26-Dec-2019 21:23:42.928629] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:43.929717] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:44.930049] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:45.930299] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:46.930449] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:47.930606] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:48.931685] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:49.932767] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:50.933840] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 1 active children, 1 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:51.934920] DEBUG: pid 12697, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool сайт] currently 2 active children, 0 spare children, 2 running children. Spawning rate 1
[26-Dec-2019 21:23:51.934953] DEBUG: pid 12697, fpm_scoreboard_proc_alloc(), line 304: [pool сайт] the proc->free_slot was not free. Let's search
[26-Dec-2019 21:23:51.935507] DEBUG: pid 12697, fpm_children_make(), line 421: [pool сайт] child 12761 started
lonelywoolf
На сайте с 23.12.2013
Offline
151
#6

Положили форум, а дождались выполнения команды? Или оборвали? Дождитесь. Ошибка говорит о том, что я выше писал.

lonelywoolf:
Пока понятно, что php виснет на каком-то этапе. Он может ждать ответа от БД, может зависнуть в каком-то бесконечном цикле или ещё чего.
S
На сайте с 21.12.2019
Offline
30
#7

Сделал, но как узнать была ли где то ошибка или нет?

---------- Добавлено 26.12.2019 в 20:18 ----------

Проблема так и осталась.

lonelywoolf
На сайте с 23.12.2013
Offline
151
#8

sincera, Значит проблема была не в обращениях к БД. У вас версия PHP соответствует требованиям версии PHPBB? Стоят ли какие-то сторонние моды? Шкурки? Проблема пока видится не в сервере.

S
На сайте с 21.12.2019
Offline
30
#9

Версия до 7.2 поддерживается. Сейчас установил на том же сервере чистый движок форума и там проблемы нет, возможно какие то хвосты остались в БД при обновлении с других версий форума, которые не поддерживали 7.0. Буду пробовать и смотреть что будет дальше

---------- Добавлено 26.12.2019 в 21:09 ----------

Нет, проблема появилась и там же. Причем проблема идет и не только там, бывает просто сейчас страницу перезагружаю на чистом движке и бах вылетает 502

---------- Добавлено 26.12.2019 в 21:31 ----------

Такая ошибка на чистом движке

2019/12/27 00:26:19 [error] 28086#28086: *11958 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 84.51.206.125, server: maps.southklad.ru, request: "POST /testphpbb/adm/index.php?i=acp_bbcodes&sid=03d379813742fa003465dfadda279333&mode=bbcodes&action=modify&bbcode=13 HTTP/1.1", upstream: "fastcgi://unix:/var/www/php-fpm/southklad.sock:", host: "maps.southklad.ru", referrer: "http://maps.southklad.ru/testphpbb/adm/index.php?i=acp_bbcodes&sid=03d379813742fa003465dfadda279333&mode=bbcodes&action=edit&bbcode=13"
T
На сайте с 11.08.2009
Offline
143
#10

Попробуйте в nginx увеличить worker_connections, например поставить:

worker_connections = 16384

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий