Как отключить пользовательские страницы ошибок cloudflare, включая ошибку 504 (время ожидания шлюза), когда умные ошибки уже отключены?

У меня есть сайт, использующий бесплатный план cloudflare.com в качестве обратного прокси.

У меня был один скрипт, выполнение которого заняло более 60 секунд, и сервер выдал 504 тайм-аут шлюза, но я не получил страницу своего веб-сервера, вместо этого я получил пользовательскую настройку страницы с помощью cloudflare,

Я дважды проверил, и мое приложение Smart-errors в cloudflare отключено, так почему же cloudflare все еще предоставляет свою пользовательскую страницу?

Как я могу отключить все пользовательские страницы cloudflare и просто использовать их в качестве обратного прокси-сервера?

Итак, мой вопрос: как я могу отключить все пользовательские страницы ошибок из cloudflare?

Я использую последний сервер nginx на Cent OS 7. 64 бит. с последней версией php-fpm.


Обновить :

Это то, что я получил, когда я иду к ошибке 504.

Error 504 Ray ID: 1fb6a3feef7c17c8 • 2015-06-24 07:16:17 UTC
Gateway time-out
You
Browser
Working
Singapore
CloudFlare
Working
mydomain.com
Host
Error
What happened?

The web server reported a gateway time-out error.
What can I do?

Please try again in a few minutes.

CloudFlare Ray ID: 1fb6a3feef7c17c8 • Your IP: myip • Performance & security by CloudFlare

Обновление: как предложил damoncloudflare, я хотел бы добавить больше деталей.,

это выделенный сервер с linux cent os 7, 64 бит, последним nginx, php-fpm,

в nginx conf я уже указал, как обрабатывать ошибки 504 с помощью

error_page  500 502 503 504             /50x.html;

Как это повторить.

код

<?php
http_response_code(504);
?>

or

<?php
sleep(61);
echo 'i am done sleeping';
?>
  • где 61 больше, чем max_execution_time, которое равно 60

Подробнее о том, почему изначально это произошло.

я загружал огромный файл, и загрузка заняла более 60 секунд, что равно max_execution_time, установленному в файле php.ini.

Итак, я получил ошибку cloudflare. Я хотел бы добавить, что с моим сервером все в порядке.

У меня есть еще один вопрос: смогу ли я отключить ошибку cloudlfare 504 и показать пользовательскую страницу своих веб-серверов, если я перейду с бесплатной версии на профессиональную?


обновление 2

я думаю, теперь я понимаю проблему.,

Ошибка 504 Тайм-аут шлюза

срабатывает, когда сервер недоступен, и именно здесь cloudflare показывает свою страницу, очевидно, если сервер недоступен, сервер не может отображать страницу 504.

Спасибо за ваш ответ.


person Community    schedule 25.06.2015    source источник


Ответы (2)


Я только что потратил на это 2 часа! Cloudflare не в первый раз причиняет мне бессмысленную боль. Я публикую этот ответ для всех, кто может столкнуться с этой проблемой.

Cloudflare хочет, чтобы вы получили премиум-план для настройки определенных страниц ошибок. На их веб-сайте (имя домена > вкладка «Пользовательские страницы»):

500 Class Errors [...] Обновите до Pro [...] После того, как вы опубликуете свою пользовательскую страницу, Cloudflare будет использовать вашу персонализированную страницу вместо предоставления нашим посетителям нашей стандартной страницы 500 Class Errors при ошибках 502, 504 и 52x.

Даже если ваша установка NGINX правильно обслуживает ваши страницы ошибок 50x, Cloudflare увидит код ответа 50x, отправленный вместе с вашей страницей ошибок, и заменит вашу страницу своей.

Существует обходной путь. Из документации NGINX по директиве error_page:

Кроме того, можно изменить код ответа на другой, используя синтаксис «=response», например: error_page 404 =200 /empty.gif;

По сути, мы перехватываем 50x, но вместо того, чтобы возвращать код ответа 50x вместе с нашей страницей ошибки, мы меняем код ответа на тот, для которого Cloudflare не будет переопределять наши страницы. Рекомендуется «понизить» сообщение об ошибке (конкретно) до ошибки 500. Это дает меньше информации, но по-прежнему соответствует ошибке класса 50x.

error_page  500 503  /50x.html;
error_page  502 504  =500  /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
    internal;
}

Я должен добавить - 504 не означает, что NGINX не доступен. Это означает, что в контексте обратного прокси-сервера NGINX успешно передал запрос, но вышестоящий сервис (FastCGI/сервер приложений, такой как Puma) ответил слишком долго.

person Ders    schedule 23.11.2019
comment
наконец-то кто-то понял, и я думал, что это из-за настроек моего сервера. скажем, для конфигурации php установлено максимальное время выполнения 3 минуты, будет ли cloudflare ждать 3 минуты, прежде чем отобразить свою пользовательскую страницу ошибки? я так не думаю. - person ; 23.11.2019
comment
@AMB Насколько я понимаю, это будет ждать, потому что при условии, что остальная часть настройки в порядке, в течение 3 минут не будет возникать никаких ошибок. На данный момент сообщение ясно: если вы используете Cloudflare, не исключайте его как источник ошибки где-то в вашем стеке. Например, возможно, где-то в их конфигурации есть настройка тайм-аута Cloudflare для исходного веб-сервера. - person Ders; 24.11.2019
comment
Если вы используете обсуждаемую конфигурацию NGINX, а Cloudflare показывает свою страницу, вы знаете, что в их конфигурации есть настройка, потому что отображается не ваша страница => ваш сервер не бросает, они бросают. По этой причине я полагаю, что эта установка также может несколько помочь в отладке. - person Ders; 24.11.2019

Ошибка шлюза 504 или 502 на самом деле указывает на проблему с вашим внутренним сервером, и я бы порекомендовал связаться с вашим хостинг-провайдером/проверить журналы вашего сервера.

«Итак, мой вопрос: как я могу отключить все пользовательские страницы ошибок из cloudflare?» Клиенты платного плана (Pro или выше) могут настраивать страницы ошибок.

«Я дважды проверил, и мое приложение Smart-errors в cloudflare отключено, так почему же cloudflare все еще предоставляет свою пользовательскую страницу?» SmartErrors — это совершенно другая функция. Он предназначен для срабатывания только тогда, когда мы получаем 404 на URL-адресе вашего сайта.

person damoncloudflare    schedule 25.06.2015
comment
Пожалуйста, смотрите обновленный вопрос, я добавил более подробную информацию о том, почему это могло произойти, и imho я не чувствую себя хорошо, когда я даже не могу справиться со своими собственными ошибками, если я не заплачу cloudflare, я знаю, что никто не заставляет меня использовать cloudflare, но все же. или, может быть, я что-то упустил, спасибо за ваш вклад. - person ; 26.06.2015
comment
скажем, для конфигурации php установлено максимальное время выполнения 3 минуты, будет ли cloudflare ждать 3 минуты, прежде чем отобразить свою пользовательскую страницу ошибки? - person ; 23.11.2019