@Tutucu

Как вывести JSON c кодом ответа 200 в NGINX при time-out?

Всем привет! Есть связка NGINX - php-fpm. Мне нужно чтобы при зависании скрипта более чем на 2 секунды выводился json с кодом ответа 200. Вывод Json я сделал, а вто код изменить не могу :( всегда 504 показывает. Как это можно реализовать?
Конфиг nginx:
#Errors
error_page 504 /errors_json/index.php?504;
location = /errors_json/index.php {
root "/var/www/site/releases/public";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
internal;
    }

index.php:
header( 'HTTP/1.1 200 OK' );
header('Content-Type: application/json');
$data = [
	'text' => 'Слишком долго думаю, повторите'
];

echo json_encode($data);
  • Вопрос задан
  • 64 просмотра
Решения вопроса 2
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
https://nginx.org/en/docs/http/ngx_http_core_modul...

Вы хотите код ответа изменить или чего? error_page делает именно то, что описано - отдаёт определённый урл при ошибке.
Ответ написан
@dodo512
error_page 504 =200 /errors_json/index.php;

Или
error_page 504 = /errors_json/index.php;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы