Как да деактивирате персонализираните страници за грешка на cloudflare, включително грешка 504 (изтичане на времето за изчакване на шлюза), докато Smart Errors вече са деактивирани?

Имам сайт, използващ безплатния план на cloudflare.com като обратен прокси.

Имах един скрипт, чието изпълнение отне повече от 60 секунди и сървърът даде 504 Gateway time-out, но не получих страницата на уеб сървърите си, вместо това получих персонализираната настройка на страницата от cloudflare,

Проверих два пъти и моето приложение за интелигентни грешки в 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. Бих искал да добавя, че нищо не е наред с моя сървър.

Имам още едно запитване, ще мога ли да деактивирам грешка 504 на cloudlfare и да покажа персонализирана страница на моите уеб сървъри, ако надстроя от безплатно до професионално?


актуализация 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:

Освен това е възможно да промените кода на отговора с друг, като използвате синтаксиса „=отговор“, например: 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 config е настроен на максимално време за изпълнение до 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 Gateway всъщност е показателна за проблем с вашия бекенд сървър и бих препоръчал да се свържете с вашия хостинг доставчик/проверете регистрационните файлове на вашия сървър.

„И така, въпросът ми е как мога да изключа всички персонализирани страници за грешка от cloudflare?“ Клиентите на платен план (Pro или по-висок) могат да персонализират страниците за грешки.

„Проверих два пъти и моето приложение за интелигентни грешки в cloudflare е ИЗКЛЮЧЕНО, така че защо cloudflare все още предоставя своя персонализирана страница?“ SmartErrors е съвсем различна функция. Той е проектиран да се задейства само когато получим 404 на URL адрес на вашия сайт.

person damoncloudflare    schedule 25.06.2015
comment
Моля, вижте актуализирания въпрос, добавих повече подробности защо това може да се е случило и имхо, не се чувствам добре, когато дори не мога да се справя със собствените си грешки, освен ако не платя cloudflare, знам, че никой не ме принуждава да използвам cloudflare, но все пак. или може би пропускам нещо, благодаря за вашия принос. - person ; 26.06.2015
comment
да кажем, че php config е настроен на максимално време за изпълнение до 3 минути, ще изчака ли cloudflare 3 минути, преди да покаже тяхната персонализирана страница за грешка? - person ; 23.11.2019