[Решено] 502 Bad Gateway

Статус
В этой теме нельзя размещать новые ответы.

webmaster315

Проверенные
Сообщения
69
Решения
2
Реакции
2
Баллы
65
Доброго времени суток. Занимался конфигурированием nginx и после решил проверить работоспособность сайта, сначала мне выдавало постоянно стандартную страницу nginx, а после конфигураций /etc/nginx/sites-available/default у меня стал появляться 502 Bad Gateway. Возможно уже есть подобные страницы на форуме, но я не нашёл и не увидел. Подскажите, пожалуйста, в чём проблема.1762088665243.pngВ root находилось сначала /var/www/html и оно выводило на стандартную страницу nginx, а как только поменял на /var/www/xenforo начало выдавать то, что на скриншоте.

Я впервые ставлю форумы на хостинги, до этого ставил в OSpanel и там было всё нормально.
OS: debian 13
PHP: php8.4-fpm
 
Последнее редактирование:
Решение
1. всё было почти окей кроме бардака в конфиге вирт. хоста, прописал корректный путь к сокету, вместо айпишника
2. для воркеров пхп-фпм зачем-то поменяли юзера, вернул на www-data
3. сменил рекурсивно владельца файлов движка так же на www-data

ещё добавлю что всякие моментики по безопасности в конфиг я не дописывал, нужно перекрыть доступ к src/internal_data, по примеру как указано в документации движка
Трудно и долго так через чат 😅 Попробуй свой:
Код:
location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {return 404;}
                fastcgi_param HTTP_PROXY "";
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $request_filename;
        }

Заменить на:

Код:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

И соответственно:
sudo systemctl reload nginx
sudo systemctl restart php8.4-fpm
тоже 502 Bad Gateway показывает и в логах nginx показывается
2025/11/02 19:13:41 [crit] 2537#2537: *248 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "IP"

почему показывает no suck file or directory - не понимаю
 
тоже 502 Bad Gateway показывает и в логах nginx показывается
2025/11/02 19:13:41 [crit] 2537#2537: *248 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "IP"

почему показывает no suck file or directory - не понимаю
Ммм, надеюсь он установлен? Странно что по дефолтному пути нету, давай попробуем найти. 🧐
find /var/run /run /tmp -name "php*.sock" 2>/dev/null И пришли список, что он нашёл.
 
Ммм, надеюсь он установлен? Странно что по дефолтному пути нету, давай попробуем найти. 🧐
find /var/run /run /tmp -name "php*.sock" 2>/dev/null И пришли список, что он нашёл.
/run/php8.4-fpm.sock
/run/php/php-fpm.sock

а вообще как бы да, ибо конфигать его и в systemctl status он появляется
 
/run/php8.4-fpm.sock
/run/php/php-fpm.sock

а вообще как бы да, ибо конфигать его и в systemctl status он появляется
Т.е. sudo systemctl restart php8.4-fpm перезапускается с ошибкой? Попробуй, пройдёт тест?
sudo php-fpm8.4 -t
 
Т.е. sudo systemctl restart php8.4-fpm перезапускается с ошибкой? Попробуй, пройдёт тест?
sudo php-fpm8.4 -t
Проходит :)

[02-Nov-2025 19:28:48.830087] DEBUG: pid 2631, fpm_stdio_save_original_stderr(), line 81: saving original STDERR fd: dup()
[02-Nov-2025 19:28:48.830562] NOTICE: pid 2631, fpm_conf_init_main(), line 1896: configuration file /etc/php/8.4/fpm/php-fpm.conf test is successful
 
Проходит :)

[02-Nov-2025 19:28:48.830087] DEBUG: pid 2631, fpm_stdio_save_original_stderr(), line 81: saving original STDERR fd: dup()
[02-Nov-2025 19:28:48.830562] NOTICE: pid 2631, fpm_conf_init_main(), line 1896: configuration file /etc/php/8.4/fpm/php-fpm.conf test is successful
Окей, давай чтобы не путаться. Попробуем с чистого листа, как должно работать на самом деле. 😅
Создадим новый конфиг: sudo nano /etc/nginx/sites-available/xenforo
В него жбуньк:
Код:
server {
    listen 80;
    listen [::]:80;
    
    server_name ip;

    root /var/www/xenforo;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$uri&$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Заводим сайт:
sudo ln -s /etc/nginx/sites-available/xenforo /etc/nginx/sites-enabled/

Старое удалим, если что, вернёшь потом:
sudo rm -f /etc/nginx/sites-enabled/default

Проверяем sudo nginx -t и перезапускаем sudo systemctl reload nginx

Ну должно работать. 🧐
 
Everlast, увы 😞
всё равно говорит, что к сокету подключиться не получается

2025/11/02 19:43:58 [crit] 2813#2813: *270 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "IP"

может ли это связано с тем, что я взял хост на myarena VDS?
 
Everlast, увы 😞
всё равно говорит, что к сокету подключиться не получается

2025/11/02 19:43:58 [crit] 2813#2813: *270 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "IP"

может ли это связано с тем, что я взял хост на myarena VDS?
Этого не знаю, насчёт сокета, странно. Давай попробуем следующим путём:
sudo systemctl stop nginx
sudo systemctl stop php8.4-fpm

Добавь это в конфиг /etc/nginx/sites-available/xenforo
Код:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

sudo systemctl start nginx
sudo systemctl start php8.4-fpm

Пока что в отладку не пойдём. 🧐
 
Этого не знаю, насчёт сокета, странно. Давай попробуем следующим путём:
sudo systemctl stop nginx
sudo systemctl stop php8.4-fpm

Добавь это в конфиг /etc/nginx/sites-available/xenforo
Код:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

sudo systemctl start nginx
sudo systemctl start php8.4-fpm

Пока что в отладку не пойдём. 🧐

неа, всё равно
2025/11/02 19:56:06 [crit] 2960#2960: *1 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: server_IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "server_IP"
 
неа, всё равно
2025/11/02 19:56:06 [crit] 2960#2960: *1 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: server_IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "server_IP"
Было бы интересно понять почему не находит сокет. Но давай перейдём полностью на TCP, попробуем 🧐
Код:
server {
    listen 80;
    listen [::]:80;
    
    server_name айпи;
    
    root /var/www/xenforo;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$uri&$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Отредактируй fpm конфиг на прослушку порта sudo nano /etc/php/8.4/fpm/pool.d/www.conf:
Найди и закомментируй строку listen = /run/php/php8.4-fpm.sock
Снизу добавь listen = 127.0.0.1:9000

Проверяем - sudo php-fpm8.4 -t
Перезагружаем fpm - sudo systemctl restart php8.4-fpm
Перезагружаем nginx - sudo systemctl reload nginx

🫣
 
Everlast, неа

sudo php-fpm8.4 -t
Код:
[02-Nov-2025 20:10:03.598677] DEBUG: pid 3124, fpm_stdio_save_original_stderr(), line 81: saving original STDERR fd: dup()
[02-Nov-2025 20:10:03.599210] NOTICE: pid 3124, fpm_conf_init_main(), line 1896: configuration file /etc/php/8.4/fpm/php-fpm.conf test is successful

/var/log/nginx/error.log
2025/11/02 20:10:18 [crit] 3148#3148: *6 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: server_IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "server_IP"

решил посмотреть ещё /var/log/php8.4-fpm.log и /var/log/php8.4-fpm.log.1 и они пустые
 
Everlast, неа

sudo php-fpm8.4 -t
Код:
[02-Nov-2025 20:10:03.598677] DEBUG: pid 3124, fpm_stdio_save_original_stderr(), line 81: saving original STDERR fd: dup()
[02-Nov-2025 20:10:03.599210] NOTICE: pid 3124, fpm_conf_init_main(), line 1896: configuration file /etc/php/8.4/fpm/php-fpm.conf test is successful

/var/log/nginx/error.log
2025/11/02 20:10:18 [crit] 3148#3148: *6 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: server_IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "server_IP"

решил посмотреть ещё /var/log/php8.4-fpm.log и /var/log/php8.4-fpm.log.1 и они пустые
🫣И в чём же фишка?)

Проглядел /etc/nginx/nginx.conf, лишняя и неправильная строка include /etc/nginx/site-available/*;

Проверим что симка создалась > вывод ls -la /etc/nginx/sites-enabled/ Должно вывести xenforo -> /etc/nginx/sites-available/xenforo

И смотрим, поменялось что? sudo nginx -t

А, и тут ошибки: tail -f /var/log/nginx/error.log
 
Было бы интересно понять почему не находит сокет.
ну вы серьёзно чтоли? вы ведь сами ему дали команду, которая позволяет найти этот проклятый сокет
/run/php8.4-fpm.sock
/run/php/php-fpm.sock
вам выплюнуло путь, его засунуть в конфиг nginx и на этом тема должна была закончится
вместо этого вы, не включая голову, суете ТС ответы чатгопоты
 
ну вы серьёзно чтоли? вы ведь сами ему дали команду, которая позволяет найти этот проклятый сокет

вам выплюнуло путь, его засунуть в конфиг nginx и на этом тема должна была закончится
вместо этого вы, не включая голову, суете ТС ответы чатгопоты
Какой чатгопоты, линк из /var/ идёт на папку /run/, лишняя проверка не помешала. Можно засунуть как /run/php8.4-fpm.sock так и /var/run/php8.4-fpm.sock, так и так в дефолте работает.
 
ну вы серьёзно чтоли? вы ведь сами ему дали команду, которая позволяет найти этот проклятый сокет

вам выплюнуло путь, его засунуть в конфиг nginx и на этом тема должна была закончится
вместо этого вы, не включая голову, суете ТС ответы чатгопоты
Проверил, Ваша чатгопота просит вписать тупо /run/php8.4-fpm.sock и пишет что ДА! В этом проблема, меняй в конфиге именно на этот путь!!!
 
🫣И в чём же фишка?)

Проглядел /etc/nginx/nginx.conf, лишняя и неправильная строка include /etc/nginx/site-available/*;

Проверим что симка создалась > вывод ls -la /etc/nginx/sites-enabled/ Должно вывести xenforo -> /etc/nginx/sites-available/xenforo

И смотрим, поменялось что? sudo nginx -t

А, и тут ошибки: tail -f /var/log/nginx/error.log
не совсем понял про include /etc/nginx/site-available/*;, но я её убрал

в ls -la /etc/nginx/sites-enabled/ вывело то, что он под root'ом и да, он вывел как раз это xenforo -> /etc/nginx/sites-available/xenforo

sudo nginx -t всё также пишет, что тест удачный
Код:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

sudo tail -f /var/log/nginx/error.log - дописал sudo, потому что нет прав открыть без sudo
Код:
2025/11/02 20:10:18 [crit] 3148#3148: *6 connect() to unix:/var/run/php/php8.4-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: client_IP, server: server_IP, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "server_IP"
 
Everlast, иначе я не могу объяснить слепоту.
у автора путь следующий

вы ему даете в ответ конфиг
Я ему путь даю по линку из папки /var/ она по дефолту там обязана быть, но давайте проверим, имеем ли мы в папке /var/ линк на /run/
 
Если я прописываю /run/php8.4-fpm.sock, то у меня выдаёт ошибку и указывает на эту строку
Everlast, иначе я не могу объяснить слепоту.
у автора путь следующий

вы ему даете в ответ конфиг
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу