Openserver ошибка 504

  • Главная

    Список форумов

    Ошибки Open Server

  • Поиск

    • Текущее время: 21 сен 2023, 16:25
    • Часовой пояс: UTC+03:00

Mikula

Сообщения: 3
Зарегистрирован: 30 сен 2016, 21:50

«504 Gateway timeout», локальный сервер

Домашний комп, Win XP SP3, Visual C++ Redist. 2015 (x86),
Установил OpenServer, запустил, не открывается PhpMyAdmin — ошибка «504 Gateway timeout».

Euhenia

Сообщения: 2
Зарегистрирован: 05 мар 2017, 15:15

Re: «504 Gateway timeout», локальный сервер

Непрочитанное сообщение

Euhenia »

Добрый день.
Аналогичная проблема: при попытке запуска PhpMyAdmin — ошибка «504 Gateway timeout». ОС — Win10.
Файл c:\Windows\System32\drivers\etc\hosts проверила. Запись 127.0.0.1 localhost — присутствует.
Если можно, подскажите, пожалуйста, как решить проблему.

Serj3702

Сообщения: 3
Зарегистрирован: 16 июн 2019, 03:25

Re: «504 Gateway timeout», локальный сервер

Непрочитанное сообщение

Serj3702 »

В течении не одного часа брожу в сети! И у меня возник вопрос в связи с этой ошибкой: На кой фиг делать, а уж тем-более распространять программу у которой такие глюки??? В сети очень много запросов на тему этой ошибки, но нет ни одного логического решения! На мой взгляд, грош цена программисту который её делал!!!!! Вот честно, без обид!

Аватара пользователя

ERserver

Сообщения: 323
Зарегистрирован: 03 авг 2015, 02:19
Откуда: СССР
Контактная информация:

0 Пользователей и 1 Гость просматривают эту тему.

  • 5 Ответов
  • 6655 Просмотров

Стандартный конфиг запускается нормально.

При следующей конфигурации

Apache-PHP-7-х64+Nginx-1.9
MySQL-5.7-x64
PHP-7-x64

При запуске phpMyAdmin или в браузере при входе на сайт

504 Gateway Time-out

Win7x64

При запуске самого сервера еще выскакивает ошибка (0xc000007b), но, если нажать «ОК» — дальше сервер запускается.

При конфигурации

Apache-PHP-7-х64
MySQL-5.7-x64
PHP-7-x64

Сервер вообще не запускается- флажок так и остается желтым, а потом самопроизвольно сбрасывается на красный. Ошибка (0xc000007b) присутствует.

Изменение max_execution_time со 180 до 360 не помогает

« Последнее редактирование: 02.04.2016, 09:44:23 от Taatshi »

Записан

запускаю от имени админа (в ярлыке прописал для всех пользователей) — проблем нет, win8x64

ps: никто не в курсе, когда IonCube под 7й пых выйдет? а то джибизу на пятом тормозит жуть

Только собрался тему про Оpen Server с php7 создать, спросить что и как, а она уже есть.
Win7x64, тоже проблемы с запуском. Разработчик говорит что надо процедуру первого запуска выполнить. На форуме говорят что иногда первый запуск не помогает, но если установить с сервера майкрософта Visual C++ для Visual Studio 2015, то все работает

Простая установка Visual C++ для Visual Studio 2015 мне не помогла. Зашла в программы и компоненты, удалила все плюсы, которые нашла — а их у меня было немеряно — и установила именно Visual C++ для Visual Studio 2015.

И все завертелось)

никто не в курсе, когда IonCube под 7й пых выйдет? а то джибизу на пятом тормозит жуть

Уже в курсе, но не особо утешительно.

PHP 7 compatibility through the Loader is top of the list at the moment and we are aiming to have a Loader released as soon as possible. We do not have an exact release date for this at the moment but a rough estimate would be within a few months. PHP 7 language feature support will be available in a future Encoder release that is aimed for release some time in 2016 but could extend into 2017.

Уже в курсе, но не особо утешительно.

:'(  >:(

Mikula

Сообщения: 3
Зарегистрирован: 30 сен 2016, 21:50

«504 Gateway timeout», локальный сервер

Домашний комп, Win XP SP3, Visual C++ Redist. 2015 (x86),
Установил OpenServer, запустил, не открывается PhpMyAdmin — ошибка «504 Gateway timeout».

Euhenia

Сообщения: 2
Зарегистрирован: 05 мар 2017, 15:15

Re: «504 Gateway timeout», локальный сервер

Непрочитанное сообщение

Euhenia » 05 мар 2017, 15:25

Добрый день.
Аналогичная проблема: при попытке запуска PhpMyAdmin — ошибка «504 Gateway timeout». ОС — Win10.
Файл c:WindowsSystem32driversetchosts проверила. Запись 127.0.0.1 localhost — присутствует.
Если можно, подскажите, пожалуйста, как решить проблему.

Serj3702

Сообщения: 3
Зарегистрирован: 16 июн 2019, 03:25

Re: «504 Gateway timeout», локальный сервер

Непрочитанное сообщение

Serj3702 » 16 июн 2019, 07:14

В течении не одного часа брожу в сети! И у меня возник вопрос в связи с этой ошибкой: На кой фиг делать, а уж тем-более распространять программу у которой такие глюки??? В сети очень много запросов на тему этой ошибки, но нет ни одного логического решения! На мой взгляд, грош цена программисту который её делал!!!!! Вот честно, без обид!

Аватара пользователя

ERserver

Сообщения: 316
Зарегистрирован: 03 авг 2015, 02:19
Откуда: СССР
Контактная информация:

Веб-сервер Nginx часто работает не только в качестве самого веб-сервера для отдачи контента, но и в качестве прокси, когда он вступает только посредником. Такая ситуация наблюдается намного чаще, чем можно было бы ожидать. Например, при работе с php-fpm и другими модулями динамических языков.

Именно в таком режиме может наблюдаться ошибка 504 gateway time out Nginx. В нашей сегодняшней статье мы попытаемся разобраться почему она возникает и как с ней бороться. Разберем несколько способов решения и причин.

Как я уже сказал, такая ошибка возникает, когда сервер Nginx работает в режиме прокси. Например, при использовании php-fpm или Apache. Дословно, она означает, что превышено время ожидания ответа от сервера. В нашем случае, превышено время ожидания ответа от php-fpm. Рассмотрим несколько причин такого поведения:

  • Скрипт PHP или на другом языке полностью завис и уже не вернет никакого ответа;
  • Скрипт работает очень долго, но в Nginx настроен интервал на сброс соединения если целевой сервер не ответил на запрос за отведенный строк;
  • Сервер перегружен и не успевает обслужить всех клиентов, вернуть ответы на все запросы Nginx;

Дальше рассмотрим что можно сделать если вы встретились с ошибкой 504 gateway time out Nginx.

Самый первый вариант — это если вашему серверу, php-fpm или apache не хватает ресурсов системы, например, памяти или процессора. Вы можете посмотреть свободную память с помощью команды free:

free -h

Нагрузку на процессор можно узнать командой htop:

htop

Естественно, если вы видите, что PHP занимает все процессорное время, то значит проблема в ресурсах сервера. Вы можете покопаться в движке своего сайта, пытаться оптимизировать те или иные моменты, об этом будет отдельная статья или же выбрать более мощный VPS сервер.

Второй вариант — это если так и было запланировано, чтобы скрипт работал долго. В таком случае нужно настроить Nginx, чтобы он дождался ответа от Apache или php-fpm. Для решения проблемы в случае с php-fpm нужно только добавить две строчки в блок настройки fastgci:

fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

Здесь 300 означает 300 секунд, для большинства скриптов, этого будет вполне достаточно, но вы можете еще больше увеличить значение если это нужно. Также ошибка 504 может возникать, когда Nginx используется в качестве прокси для Apache или любого другого веб-сервера, тогда нужно еще настроить время ожидания для прокси. Добавьте эти строки в секцию server:

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

Тут уже мы задаем таймаут 600 секунд для различных видов действий — подключения, отправки данных, чтения данных и так далее. После завершения настройки Nginx стоит перезапустить:

sudo systemctl restart nginx

Последний вариант, который мы рассмотрим — это скрипт завис. Если вы сами запускаете скрипт, то сразу увидите что зависло, но если такая ошибка встречается у пользователей, то это уже более серьезная проблема. Вы можете посмотреть встречаются ли вашим пользователям такие ошибки и где они встречаются с помощью команды:

fgrep -i " 504 " /var/log/nginx/access.log

Более подробную информацию иногда можно увидеть в error.log:

fgrep -i " 504 " /var/log/nginx/error.log

Дальше, если проблема именно в php-fpm, вы можете отследить какие скрипты выполняются медленно с помощью встроенной функции slow-log. Для ее активации добавьте следующие строки в конфигурацию вашего пула:

sudo vi /etc/php-fpm.d/www.conf

slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s

Здесь 5 секунд, означает, что в лог файл будут добавляться скрипты, которые выполняются дольше пяти секунд. Вы можете менять это значение по своему усмотрению. В логе вы сможете увидеть не только сами скрипты, но и трассировку методов, которые привели к проблемам:

Дальше останется только разобраться что с этим делать, например, оптимизировать скрипты или отключить лишние плагины.

Выводы

В этой статье мы рассмотрели как исправить 504 gateway time out Nginx 1.2 7, а также почему может возникнуть эта ошибка. Надеюсь, эта информация была полезной для вас.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Иногда при посещении отдельных страниц сайта мы сталкиваемся с тем, что на экране вместо желаемого контента появляется сообщение об ошибке с цифровым кодом. Для «непосвященного» пользователя это просто набор цифр, но на самом деле в этих цифрах заложена определенная информация. Все они группируются по видам причин возникновения сбоя. 

Сообщения, кодирующиеся в формате 5хх, говорят о проблеме на стороне сервера, например, когда невозможно выполнить запрос из-за нарушения связи между несколькими серверами. Ошибка 504 Gateway Time Out не является распространенной, но это не значит, что на нее не стоит обращать внимания, особенно владельцу сайта. Рассмотрим некоторые причины возникновения данной ошибки и способы ее устранения как на стороне обычного посетителя, так и администратором веб-ресурса.

Ошибка 504 Gateway Time Out – это код состояния HTTP, который появляется, когда в течение заданного периода времени один сервер не получает своевременный ответ от другого сервера, который действует как шлюз или прокси.

Описания ошибки могут иметь различную форму:

  • 504 Gateway Timeout nginx
  • Gateway Timeout Error
  • HTTP Error 504
  • 504 Gateway Time-out – The server didn’t respond in time
  • HTTP Error 504 – Gateway Timeout

Наличие дополнительного словесного описания помогает конкретизировать причину возникновения сбоя. 

Производительный хостинг в подарок при заказе лицензии 1С-Битрикс

Выбирайте надежную CMS с регулярными обновлениями системы и профессиональной поддержкой. А мы подарим вам год хостинга – специально для сайтов на 1С-Битрикс.

Заказать

Что делать посетителю сайта при возникновении ошибки 504 

Итак, вы столкнулись с появлением на экране сообщения «error 504». Не спешите уходить с сайта, ведь возникновение сбоя может говорить о неправильной работе вашего браузера или даже наличии более серьезных проблем на уровне пользовательского софта. Попробуйте произвести довольно простые действия, чтобы убедиться, что с вашим программным обеспечением и настройками все в порядке. 

  1. Перезагрузите проблемную страницу или текущий браузер. Если проблема устранилась и не повторяется вновь, особенно при посещении других сайтов, о ней можно просто забыть. При регулярном возникновении однотипных ошибок во время посещения разных ресурсов стоит покопаться в настройках собственного ПО поглубже.
  2. Зайдите на тот же самый сайт, где возникла ошибка сервера 504, используя альтернативный браузер. В случае, когда страница во время тестирования открылась корректно, обновите браузер, в котором случился сбой, до последней версии.
  3. Проверьте, как открываются страницы этого же сайта с другого компьютера или смартфона. Это позволит вам понять, не связано ли появление ошибки 504 с ПО конкретного устройства.
  4. При регулярном появлении HTTP ошибок, в т.ч. с кодом 504, очистите кэш браузера, удалите файлы cookies. Со временем в любом браузере накапливается много «мусора». Произведя очистку, вы поможете программе работать более корректно и даже быстрее.
  5. Произведите сброс настроек роутера или модема, отключив оборудование на некоторое время от сети. Данная операция вряд ли приведет к устранению ошибки 504, но может улучшить качество интернет-соединения. Провайдеры регулярно вносят изменения в настройки собственного софта, обновляют его. Иногда это приводит к конфликту в корректном взаимодействии пользовательского оборудования и серверов оператора. Перезагрузка устройства по питанию в большинстве случаев решает такие проблемы.
  6. Очистите кэш DNS. Данная операция кажется сложной для обычного пользователя, но на деле выполнить ее достаточно легко. Способ очистки зависит от вашей операционной системы, найдите соответствующий мануал в интернете.
  7. Для опытных пользователей подойдет рекомендация временно переключить DNS-сервер на Google Public DNS, что как минимум поможет определить, возник ли ошибочный код состояния HTTP по причине DNS проблемы. 

Если после проведения всех вышеозначенных рекомендаций любая ошибка, в т.ч. 504 Gateway Time Out, продолжает возникать регулярно, обратитесь в техподдержку проблемного интернет-ресурса. 

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Решение проблем с появлением ошибки сервера 504 администратором веб-ресурса 

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

  • проводить регулярную симуляцию пользовательского поведения на сайте;
  • настроить автоматизированный мониторинг работоспособности ресурса как встроенными инструментами администрирования, так и с использованием специальных скриптов;
  • обеспечить качественную работу службы технической поддержки сайта, своевременную обработку всех поступающих сообщений, особенно связанных с информацией о появлении разного рода ошибок на стороне пользователя. 

Соблюдение последнего правила не только позволит практически без дополнительных затрат отслеживать все возможные проблемы, которые возникают при посещении сайта. Своевременная обработка пользовательских запросов, быстрый ответ, выдача рекомендаций и публичное обсуждение повышают лояльность и создают дополнительный PR-эффект.

Почти все ошибки с кодом 5хх, возникающие из-за невозможности обработки определенного количества запросов, поступающих на сервер, решаются методом апгрейда железа (использованием высокопроизводительного хостинга) либо оптимизацией работы программного обеспечения. Второй способ зависит от вида движка, на котором создан конкретный сайт. При использовании условно-бесплатных программ (WordPress, OpeneCart и других) все проблемы придется решать на уровне администрирования, с привлечением конкретного веб-программиста, разработавшего данный сайт. Если баги возникают на платных платформах (1С-Битрикс, UMI.CMS, NetCat CMS), напишите об ошибке 504 Gateway Time Out в техподдержку разработчика. Отправить сообщение о проблеме следует и разработчикам платных скриптов, если они установлены на вашем сайте, и вы считаете, что сбои возникают по причине их некорректного исполнения. 

Вот некоторые причины, приводящие к возникновению ошибки 504 Gateway Time Out

  • Резкий скачок нагрузки на сайт вследствие поступления большого количества внешних запросов, вызванного DDoS-атаками или действиями вирусного ПО, пиковым посещением сайта, например, в момент проведения различных акций в интернет-магазине, или единовременной загрузкой на сайт большого объема контента (импорт информации из CSV- или XML-файлов).
  • Некорректная работа скриптов, плагинов и дополнений, конфликтующих как между собой, так и внутри.
  • Превышение лимита доступных ресурсов при использовании виртуального хостинга.

Еще одна возможная причина возникновения ошибки 504 – исполняемый скрипт не укладывается в отведенный лимит времени. Это бывает, когда скрипт обращается к другим сайтам либо просто выполняет тяжелую операцию, например, строит поисковый индекс.

Рекомендации по устранению ошибки 504 Gateway Time Out методами администрирования сайта

Ошибка 504 Gateway Time Out может быть вызвана недавними изменениями или обновлениями на сайте. Если после отката к состоянию, предшествующему изменениям, баг исчез, следует найти конкретное действие, повлекшее возникновение ошибки. Для этого необходимо проверить журнал ошибок соответствующей CMS. Пользователи WordPress могут включить журналирование ошибок в файле wp-config.php добавлением следующих строк: 

define( 'wp_debug', true );
define( 'wp_debug_log', true );
define( 'wp_debug_display', false )

Все возникающие варианты ошибок будут записаны в файле wp-contents/debug.log.

Для проверки работоспособности плагинов и расширений попробуйте отключить те, которые вызывают подозрение как источники возникновения ошибки 504. В первую очередь это касается устаревших скриптов, но причиной могут оказаться и обновления. Если проблема исчезла, далее следует найти некорректный плагин или дополнение и устранить или исправить его. Один из способов улучшения работы исполняемого скрипта – увеличить значение параметра PHP max_execution_time или облегчить скрипт.

При использовании CDN для более быстрого получения контента, в частности CloudFlare, который работает как CDN и как сервис предотвращения негативных последствий от DDoS, вы можете столкнуться с двумя типами ошибок 504. В случае возникновения проблемы на стороне CloudFlare лучшим решением будет связаться с поддержкой CloudFlare или отключить его. Второй вариант – когда сбой возникает на стороне хостинг-провайдера. В этой ситуации также необходимо обратиться в службу поддержки хостера.

Часто ошибку 504 можно видеть на серверах, где используется VPS-хостинг и установлен Nginx в качестве фронтенда и Apache в качестве бэкенда. Для устранения проблемы в Apache можно увеличить значение timeout по умолчанию в файле httpd.conf:

# Timeout: The number of seconds before receives and sends time out.

Timeout 600

Также увеличить лимит в max_execution_time в php.ini: 

После внесения изменений следует перезапустить Apache. Ошибка 504 Gateway Time Out должна исчезнуть.

Аналогичным образом проблема с появлением ошибки HTTP 504 решается пользователями Nginx. Попробуйте увеличить такие параметры в файле /etc/nginx/conf.d/timeout.conf:

proxy_connect_timeout 600;

proxy_send_timeout 600;

proxy_read_timeout 600;

send_timeout 600;

Также рекомендуется увеличить max_execution_time в php.ini:

Далее перезапустите Nginx и откройте сайт. 

Более простым решением устранения данной проблемы является использование панели управления сервером.

Данный способ позволяет администрировать настройки веб-сервера без использования консоли, один раз настроить их под ваш проект и больше не подключаться к серверу без острой необходимости.

Например, в бесплатной панели управления Vesta Control Panel достаточно внести изменения в раздел «Сервер» и навсегда забыть о возможности возникновения ошибок на сайте.

Ошибка ответа сервера 504 Vesta Control PanelИ далее внести соответствующие изменения.

Ошибка ответа сервера 504 Vesta Control Panel

Изменение php.ini в VestaCP

Аналогичным способом проблема устраняется и при использовании альтернативных панелей управления хостингом – Ajenti, CentOS Web Panel, ISPmanager и других.

Если вы считаете, что появление 504 Gateway Timeout вызвано превышением лимита использования ресурсов серверного железа, оптимальным решением будет аренда выделенного сервера или VPS. Когда ваш сайт уже размещен на виртуальном хостинге, но ни одна из рекомендаций не привела к исправлению error 504, обратитесь к хостинг-провайдеру. В этом случае подробно опишите причины, которые, как вы полагаете, привели к появлению сбоя.

Заключение

В данной статье мы рассмотрели основные причины возникновения ошибки HTTP 504 Gateway Timeout и популярные способы устранения неполадки. Уверен, некоторые администраторы веб-ресурсов сталкивались с подобными проблемами, выходящими за рамки приведенных примеров и рекомендаций.

Буду благодарен, если вы поделитесь своим опытом в комментариях.

0 Пользователей и 1 Гость просматривают эту тему.

  • 5 Ответов
  • 6444 Просмотров

Стандартный конфиг запускается нормально.

При следующей конфигурации

Apache-PHP-7-х64+Nginx-1.9
MySQL-5.7-x64
PHP-7-x64

При запуске phpMyAdmin или в браузере при входе на сайт

504 Gateway Time-out

Win7x64

При запуске самого сервера еще выскакивает ошибка (0xc000007b), но, если нажать «ОК» — дальше сервер запускается.

При конфигурации

Apache-PHP-7-х64
MySQL-5.7-x64
PHP-7-x64

Сервер вообще не запускается- флажок так и остается желтым, а потом самопроизвольно сбрасывается на красный. Ошибка (0xc000007b) присутствует.

Изменение max_execution_time со 180 до 360 не помогает

« Последнее редактирование: 02.04.2016, 09:44:23 от Taatshi »

Записан

запускаю от имени админа (в ярлыке прописал для всех пользователей) — проблем нет, win8x64

ps: никто не в курсе, когда IonCube под 7й пых выйдет? а то джибизу на пятом тормозит жуть

Только собрался тему про Оpen Server с php7 создать, спросить что и как, а она уже есть.
Win7x64, тоже проблемы с запуском. Разработчик говорит что надо процедуру первого запуска выполнить. На форуме говорят что иногда первый запуск не помогает, но если установить с сервера майкрософта Visual C++ для Visual Studio 2015, то все работает

Простая установка Visual C++ для Visual Studio 2015 мне не помогла. Зашла в программы и компоненты, удалила все плюсы, которые нашла — а их у меня было немеряно — и установила именно Visual C++ для Visual Studio 2015.

И все завертелось)

никто не в курсе, когда IonCube под 7й пых выйдет? а то джибизу на пятом тормозит жуть

Уже в курсе, но не особо утешительно.

PHP 7 compatibility through the Loader is top of the list at the moment and we are aiming to have a Loader released as soon as possible. We do not have an exact release date for this at the moment but a rough estimate would be within a few months. PHP 7 language feature support will be available in a future Encoder release that is aimed for release some time in 2016 but could extend into 2017.

Уже в курсе, но не особо утешительно.

:'(  >:(

I am using Nginx as a reverse proxy that takes requests then does a proxy_pass to get the actual web application from the upstream server running on port 8001.

If I go to mywebsite.example or do a wget, I get a 504 Gateway Timeout after 60 seconds… However, if I load mywebsite.example:8001, the application loads as expected!

So something is preventing Nginx from communicating with the upstream server.

All this started after my hosting company reset the machine my stuff was running on, prior to that no issues whatsoever.

Here’s my vhosts server block:

server {
    listen   80;
    server_name mywebsite.example;

    root /home/user/public_html/mywebsite.example/public;

    access_log /home/user/public_html/mywebsite.example/log/access.log upstreamlog;
    error_log /home/user/public_html/mywebsite.example/log/error.log;

    location / {
        proxy_pass http://xxx.xxx.xxx.xxx:8001;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

And the output from my Nginx error log:

2014/06/27 13:10:58 [error] 31406#0: *1 upstream timed out (110: Connection timed out) while connecting to upstream, client: xxx.xx.xxx.xxx, server: mywebsite.example, request: "GET / HTTP/1.1", upstream: "http://xxx.xxx.xxx.xxx:8001/", host: "mywebsite.example"

Stephen Ostermiller's user avatar

asked Jun 27, 2014 at 13:45

Dave Roma's user avatar

2

Probably can add a few more line to increase the timeout period to upstream. The examples below sets the timeout to 300 seconds :

proxy_connect_timeout       300;
proxy_send_timeout          300;
proxy_read_timeout          300;
send_timeout                300;

Synchro's user avatar

Synchro

34.5k15 gold badges79 silver badges99 bronze badges

answered Sep 19, 2014 at 8:25

user2540984's user avatar

user2540984user2540984

2,2391 gold badge11 silver badges5 bronze badges

10

Increasing the timeout will not likely solve your issue since, as you say, the actual target web server is responding just fine.

I had this same issue and I found it had to do with not using a keep-alive on the connection. I can’t actually answer why this is but, in clearing the connection header I solved this issue and the request was proxied just fine:

server {
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_pass http://localhost:5000;
    }
}

Have a look at this posts which explains it in more detail:
nginx close upstream connection after request
Keep-alive header clarification
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive

Community's user avatar

answered Apr 13, 2016 at 5:13

Almund's user avatar

AlmundAlmund

5,3993 gold badges30 silver badges34 bronze badges

2

user2540984, as well as many others have pointed out that you can try increasing your timeout settings. I myself faced a similar issue to this one and tried to change my timeout settings in the /etc/nginx/nginx.conf file, as almost everyone in these threads suggest. This, however, did not help me a single bit; there was no apparent change in NGINX’ timeout settings. After many hours of searching, I finally managed to solve my issue.

The solution lies in this forum thread, and what it says is that you should put your timeout settings in /etc/nginx/conf.d/timeout.conf (and if this file doesn’t exist, you should create it). I used the same settings as suggested in the thread:

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

This might not be the solution to your particular problem, but if anyone else notices that the timeout changes in /etc/nginx/nginx.conf don’t do anything, I hope this answer helps!

answered Feb 9, 2019 at 10:05

Andreas Forslöw's user avatar

4

If you want to increase or add time limit to all sites then you can add below lines to the nginx.conf file.

Add below lines to the http section of /usr/local/etc/nginx/nginx.conf or /etc/nginx/nginx.conf file.

fastcgi_read_timeout 600;
proxy_read_timeout 600;

If the above lines doesn’t exist in conf file then add them, otherwise increase fastcgi_read_timeout and proxy_read_timeout to make sure that nginx and php-fpm did not timeout.

To increase time limit for only one site then you can edit in vim /etc/nginx/sites-available/example.com

location ~ .php$ {
    include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
    fastcgi_read_timeout 300; 
}

and after adding these lines in nginx.conf, then don’t forget to restart nginx.

service php7-fpm reload 
service nginx reload

or, if you’re using valet then simply type valet restart.

answered May 6, 2018 at 15:48

Adeel's user avatar

AdeelAdeel

2,9017 gold badges24 silver badges34 bronze badges

2

You can also face this situation if your upstream server uses a domain name, and
its IP address changes (e.g.: your upstream points to an AWS Elastic Load
Balancer)

The problem is that nginx will resolve the IP address once, and keep it cached
for subsequent requests until the configuration is reloaded.

You can tell nginx to use a name server to re-resolve the domain once the cached
entry expires:

location /mylocation {
    # use google dns to resolve host after IP cached expires
    resolver 8.8.8.8;
    set $upstream_endpoint http://your.backend.server/;
    proxy_pass $upstream_endpoint;
}

The docs on proxy_pass explain why this trick works:

Parameter value can contain variables. In this case, if an address is specified
as a domain name, the name is searched among the described server groups, and,
if not found, is determined using a resolver.

Kudos to «Nginx with dynamic upstreams» (tenzer.dk) for the detailed
explanation, which also contains some relevant information on a caveat of this
approach regarding forwarded URIs.

answered Sep 13, 2018 at 10:03

el.atomo's user avatar

el.atomoel.atomo

5,0203 gold badges28 silver badges28 bronze badges

2

nginx

proxy_read_timeout          300;

In my case with AWS, I edited load balance setting also.
Attributes => Idle timeout

answered Nov 18, 2021 at 15:46

Jeff Gu Kang's user avatar

Jeff Gu KangJeff Gu Kang

4,6492 gold badges34 silver badges44 bronze badges

2

Had the same problem. Turned out it was caused by iptables connection tracking on the upstream server. After removing --state NEW,ESTABLISHED,RELATED from the firewall script and flushing with conntrack -F the problem was gone.

lloiacono's user avatar

lloiacono

4,4042 gold badges34 silver badges46 bronze badges

answered Aug 19, 2018 at 21:50

mindlab's user avatar

NGINX itself may not be the root cause.

IF «minimum ports per VM instance» set on the NAT Gateway — which stand between your NGINX instance & the proxy_pass destination — is too small for the number of concurrent requests, it has to be increased.

Solution: Increase the available number of ports per VM on NAT Gateway.

Context In my case, on Google Cloud, a reverse proxy NGINX was placed inside a subnet, with a NAT Gateway. The NGINX instance was redirecting requests to a domain associated with our backend API (upstream) through the NAT Gateway.

This documentation from GCP will help you understand how NAT is relevant to the NGINX 504 timeout.

answered Jun 12, 2020 at 20:23

Sushilinux's user avatar

SushilinuxSushilinux

7007 silver badges22 bronze badges

In my case i restart php for and it become ok.

answered Jun 23, 2020 at 11:00

Mahdi Aslami Khavari's user avatar

1

If nginx_ajp_module is used, try adding
ajp_read_timeout 10m;
in nginx.conf file.

answered Jan 20, 2021 at 15:42

user15045904's user avatar

I use NGINX a lot. I recently deployed a Node.js web application with NGINX as a reverse proxy server for it. One of the key features of the application is support for data imports using excel templates. However, it didn’t take long before users uploading bulky files started getting a 504 Gateway Timeout error from NGINX.

[ You might also like: Fix Nginx Error: 413 Request Entity Too Large ]

Are you getting the same error? Don’t worry, I have got you covered. In this article, I will show how to fix the 504 Gateway Timeout error by increasing the request timeout in the NGINX web server.

Increase Request Timeout in NGINX for a Proxied Server

If you are using NGINX as a reverse proxy for an application server such as Node.js or a web server such as Apache or Gunicorn, then you can increase request timeout by setting the following parameters either in the http, or server, or location directive.

The timeout is in seconds and makes sure that you have to set timeout values that will work effectively and efficiently for your environment.

proxy_connect_timeout 75;
proxy_send_timeout 600;
proxy_read_timeout 600;

From the names of the directives, it is easy to tell what timeout they define. The proxy_connect_timeout directive states a timeout for creating a connection with a proxied server. According to the official NGINX documentation, the value should not exceed 75 seconds.

The next directive proxy_send_timeout defines a timeout for transmitting a request to the proxied server. The last directive proxy_read_timeout sets a timeout for reading a response from the proxied server.

Now that you have a slight understanding of the above directives, you can configure that as shown. In the http context, you can set them in NGINX’s main configuration file located at /etc/nginx/nginx.conf.

http{
....
	proxy_read_timeout 600;
	proxy_connect_timeout 600;
	proxy_send_timeout 600;
....
In the server context, you can define them in a server block file for your application for example /etc/nginx/conf.d/example.com.conf:
server{
....
             proxy_read_timeout 600;
	 proxy_connect_timeout 600;
	 proxy_send_timeout 600;

             location  /  {
                try_files $uri $uri/ /index.html =404 =403 =500;
          }
          location  /api  {
                proxy_pass http://127.0.0.1:5000;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                
       }
}

In a location block, they would look like this:

server{
....
             location  /  {
                try_files $uri $uri/ /index.html =404 =403 =500;
          }
          location  /api  {
                proxy_pass http://127.0.0.1:5000;
                proxy_read_timeout 600;
	        proxy_connect_timeout 600;
	        proxy_send_timeout 600;

               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Host $host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
}

Save the file and close it.

To apply the recent changes, you need to restart the NGINX service.

$ sudo systemctl restart nginx
OR
# systemctl restart nginx

Increase Request Timeout in NGINX for FastCGI

For a FastCGI server such as PHP-FPM, you can use the following directive either in the http, or server, or location:

fastcgi_connect_timeout 75;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;

In a location block for processing PHP files, you can define them as shown:

location ~ .php$ {
	fastcgi_pass unix:/run/lib/php7.4-fpm.sock;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
	fastcgi_connect_timeout 75;
            fastcgi_send_timeout 600;
            fastcgi_read_timeout 600;
}

Do not forget to restart the NGINX service after making changes:

$ sudo systemctl restart nginx
OR
# systemctl restart nginx

Note: You might also have to make some configuration changes in the php.ini and PHP-FPM pool configuration files especially to the max_execution_time and request_terminate_timeout directives respectively.

That’s it! In this article, we looked at how to increase request timeout in NGINX to solve the 504 Gateway timeout error. For more information, read the NGINX documentation. For any comments, reach us via the feedback form below.

Код ошибки в формате 5хх говорит о том, что на стороне сервера есть проблема: сервер не может обработать запрос от клиента. Клиентом в данном случае выступает браузер.

Ошибка 504 Gateway Time Out возникает, когда в заданный промежуток времени сервер не получает ответ от другого сервера, при этом другой сервер выполняет роль прокси или шлюза.




Ошибка 504 что значит

Какие ещё бывают варианты отображения ошибки:

  • HTTP Error 504,
  • Gateway Timeout Error,
  • HTTP Error 504 – Gateway Timeout,
  • 504 Gateway Timeout nginx,
  • 504 Gateway Time-out – The server didn’t respond in time,
  • Ошибка 504 Время ответа сервера истекло,
  • Время ожидания шлюза (504),
  • Ошибка тайм-аута шлюза,
  • HTTP 504,
  • 504 Ошибка.

В этой статье мы расскажем, как устранить код ошибки 504.

Как исправить ошибку 504 посетителю сайта

Итак, вы перешли на сайт, но вместо веб-страницы видите сообщение с кодом 504.




Что такое тайм аут шлюза

Проблема может быть как со стороны сайта, так и со стороны устройства, например настроек браузера.
Чтобы убедиться в том, что настройки браузера в порядке:

1) Обновите страницу. Но обновите не клавишей F5, а выделите содержимое адресной строки и нажмите Enter. Если после этих действий ошибка 504 не возникает ни на текущем, ни на любом другом сайте – её можно проигнорировать.

2) Зайдите на тот же ресурс через другой браузер. Если в этом случае сайт открылся корректно, перейдите к следующему пункту.

3) Очистите кэш браузера и удалите файлы cookie. После этого браузер будет работать быстрее.
Воспользуйтесь инструкцией Как очистить кэш браузера.

4) Перезагрузите роутер или модем. Отключите устройство от сети примерно на 10 минут.

5) Очистите кэш DNS. Для этого воспользуйтесь инструкцией ниже.


Как очистить кэш DNS

В зависимости от вашей операционной системы очистите кэш по одной из инструкций.

1) Откройте командную строку. Для этого введите в поисковую строку «Командная строка» и выберите появившееся приложение:




2) Введите команду:

3) Дождитесь сообщения об очистке кэша:




1) Откройте терминал клавишами Ctrl+Alt+T.

2) Введите команду:

Для Ubuntu:

sudo service network-manager restart

Для других дистрибутивов:

sudo /etc/init.d/nscd restart

1) Войдите в терминал. Для этого нажмите клавиши Command + Space. Введите Терминал и нажмите на найденное приложение.

2) Введите команду:

sudo killall -HUP mDNSResponder

Готово, вы очистили кэш DNS.

6) Обратитесь в техподдержку вашего интернет-провайдера. Возможно, это проблема сети, за которую отвечает провайдер.

Если эти действия не принесли результата – обратитесь в техническую поддержку сайта.

Если вы владелец сайта

Как исправить ошибку 504 на виртуальном хостинге

1 способ

Эта ошибка может возникнуть в случае, если для Nginx был превышен лимит на время ответа сайта. По умолчанию это 30 секунд, при этом среднее время загрузки сайта не должно превышать 1-3 секунды.
Если скрипты вашего сайта должны исполняться дольше 30 секунд, вы можете миновать Nginx и обратиться к сайту по другим портам. Если ваша панель управления хостингом:

  • ISPManager – используйте порт 8081
  • cPanel или Plesk – используйте порт 8080.

2 способ

Если этот вариант вам не подходит, рекомендуем перенести ваш сайт на Облачный сервер, на котором доступна гибкая настройка сервера, в том числе и лимитов. Для этого закажите услугу «Облачные серверы» и перенесите сайт по инструкции Как перенести сайты между услугами REG.RU.

3 способ

Также вы можете изменить директиву max_execution_time в файле php.ini. Она указывает на время, за которое должен отрабатываться скрипт. Для этого:

  1. 1.
  2. 2.

    Укажите нужное значение в строке:

    Где 30 – время выполнения скрипта в секундах.

4 способ

Если вы используете CDN, проблема может быть связана с ней.


Что такое CDN

CDN – это сетевая инфраструктура, которая распределена географически. Она обеспечивает быструю загрузку контента пользователям веб-сервисов и сайтов. Серверы, которые входят в состав CDN, географически расположены так, чтобы сделать время ответа сайта или сервиса минимальным для пользователей.
Пользователь ищет ресурс и тем самым посылает запрос. Запрос идентифицируется и направляется на PoP – на ближайший к пользователю кэширующий сервер в этой инфраструктуре. Возможны два варианта:

  • Если в кэше PoP есть данные об этом запросе, он отвечает браузеру, а тот отображает контент.
  • Если в кэше этого сервера нет данных, запрос переадресовывается к ориджину – центральному серверу, на котором хранятся все данные. Когда ориджин отвечает на запрос, PoP кэширует его и передаёт ответ браузеру. После этого контент отображается в браузере.

Ошибку 504 может вернуть кэширующий сервер, если превышено время ожидания от центрального сервера.

Если ошибку исправить не удалось, обратитесь в техническую поддержку.

Как исправить ошибку 504 на VPS

1 способ

Эта ошибка может возникнуть в случае, если для Nginx был превышен лимит на время ответа сайта. По умолчанию это 30 секунд, при этом среднее время загрузки сайта не должно превышать 1-3 секунды.
Чтобы избавиться от этой ошибки, попробуйте повысить время ожидания веб-сервера Nginx.

2 способ

Также ошибка 504 может возникать, когда Nginx используется как прокси-сервер для Apache. В этом случае нужно настроить параметры времени ожидания при проксировании. Максимальное время исполнения скрипта в настройках веб-сервера — 300 секунд.
Изменить параметры ожидания можно в конфигурационном файле nginx.conf. Для этого:

  1. 1.

    Подключитесь к серверу по SSH.

  2. 2.

    Откройте конфигурационный файл с помощью команды:

    sudo nano /etc/nginx/nginx.conf
  3. 3.

    Добавьте строки в блоке server:

    #server {
    
    #...
    
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;
    
    #...
    #}

    Где 600 — время в секундах.

  4. 4.

    Перезапустите Nginx с помощью команды:

Если решить проблему не удалось, обратитесь в техническую поддержку или на тематические форумы по Nginx.

Website errors are always a mess for users.

Sometimes the errors are completely clueless and users may not know how to fix it.

A typical example of such an error is “504 timeout error,” in Nginx, a tricky error to resolve.

That’s why, we often get requests from our customers to fix “504 timeout Nginx ” error as part of our Technical Support Services.

Today, let’s understand what is 504 timeout error in Nginx and reasons on why this error occurs, also the way Bobcares’ Engineers fix it.

What is 504 timeout Nginx error?

Nginx is an open-source, high-performance HTTP web server. Now, it is used for serving web pages, as reverse proxy, caching, load balancing, media streaming, and more.

Furthermore, a 504 Nginx timeout error is one of the HTTP status code. Usually, the server sends back a 504 HTTP code when the request is not completed.

In addition, this is a common error, most likely due to process exceeding the PHP execution time limit or the read timeout settings of FastCGI.

Top reasons for the “504 timeout error,” and quick fix for it in Nginx

From our experience in managing server, our Support Engineers often deal with this error and fixe it for our customers.

Now, let’s see how our Technical Team exactly fixed “504 timeout Nginx” error with different methods.

1. Adjustment in timeout settings

Usually, adjusting the timeout settings is one of the methods to fix 504 error.

Recently, in one of the customer’s server, Nginx was set up as a proxy server with PHP-FPM disabled. To fix the 504 error, we increased the timeout values in the file “timeout.conf”.

1.  We edited the file /etc/nginx/conf.d/timeout.conf and added the following parameters to file “timeout.conf”.

proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;

2. Finally, we restarted the service.

service nginx restart

2. Modifying Other Nginx settings

Sometimes, increasing values in “timeout.conf” doesn’t resolve this issue. Then, our Support Engineers add codes in “nginx.conf”. In addition, if the values are already preset in “nginx.conf”, we will increase the value.

1. We open the file /etc/nginx.

2. Then, we add the following snippet to “timeout.conf”.

client_header_timeout 3000;
client_body_timeout 3000;
fastcgi_read_timeout 3000;
client_max_body_size 32m;
fastcgi_buffers 8 128k;
fastcgi_buffer_size 128k;

3. Finally, we restart the service.

service php-fpm restart
service nginx restart

3. Modification in PHP settings

At times, to fix  504 Nginx timeout error, we may need to modify the php settings in php.ini file.

Recently, our Support Engineers had to raise the value of max_execution_time  in php.ini file.

In CentOS, we located “/etc/php.ini” and  increased the value “max_execution_time” by adding the following entry.

max_execution_time = 150

Additionally, we raised the value of request_terminate_timeout setting in php.ini file too.

request_terminate_timeout = 150

4. Nginx virtual host configuration settings

Similarly, fix may involve modifying Nginx virtual host configuration too. Here, to fix the php file access, in Nginx virtual host configuration, our Support Engineers add FastCGI read timeout variable.

location ~* .php${
include fastcgi_params;
fastcgi_index index.php;
fastcgi_read_timeout 150;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Then, we restart PHP-FPM and Nginx.

service php-fpm restart
service nginx restart

This removes the 504 error from the website and it starts working correctly.

[Getting 504 timeout error in Nginx? We are here to fix it.]

Conclusion

In short, a “504 timeout Nginx” error is one of the HTTP status code that a server sends back if the underlying request is not completed. Today, we saw how our Support Engineers fixed “504 timeout error” in Nginx.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Home / Questions / How to increase PHP processing timeout on OpenServer?


Christian's avatar

  • 0

The code needs about 30 minutes to process and output the result, but after about 3 minutes, a 504 Gateway Time-out error appears. That is, in OpenServer there is a limit on the processing time of the code. How can you increase or completely disable this error and everything attached to it?

3 Answers


  1. Paul Smith's avatar

    The code that takes so much time to work should be run not in the context of the web server, but for example, on the crown, and save the result for further display, and for example, periodically check the end of the process with ajax requests from the client.

    You can, of course, screw up the value nginx.org in the nginx config if you have nginx apache, or nginx.org if you have nginx php-fpm. Well, max_execution_time is at the same time. But this is not the correct approach.

    • 1
    • Reply


  2. Daniel Flowers's avatar

    Are you sure that 30 minutes is what you want?
    Can you tell us about the problem as a whole in order to solve the problem not with a crutch?)
    Holding 1-2 connections for 30 minutes is ok, but if there are much more?)
    Do you work in DC?)))

    • 0
    • Reply


    • Christian's avatar

      “Are you sure 30 minutes is what you want?” – well, since this number is indicated in the question, then of course I am sure.
      “Can you tell us about the problem as a whole in order to solve the problem not with a crutch?” I think any solution to this problem will not be a crutch. The code itself processes an incredibly large amount of data and takes about 30 minutes to process. It is necessary to implement this not for some website that users will visit, but for a personal resource, so there should be no problems with mass use.
      “30 minutes to hold 1-2 connections is ok, but if there are much more?” As I wrote above, the resource will be individual, that is, no one except me will use it and it will not go anywhere further to OpenServer.
      “Do you work in the DC?” – If the word DC means Data Center, then no, this script is not fixed by anything and has a purely individual character of both the intended purpose and the implementation itself. Therefore, the only solution to this problem is to disable such errors, I have no idea how

      • 0
      • Reply


    • Paul Smith's avatar

      Thomas , Certainly not the only, and not even the right solution.
      Perhaps you don’t need to do this in the form of a “site” at all, but to do it like a cli script is easy.
      Perhaps you should only start and display the results from the site, as I wrote in my reply, and process the data itself, again in the context of the cli and not the web server.

      • 0
      • Reply


    • Daniel Flowers's avatar

      Thomas , just if it’s a local daemon that smokes tons of data, you might find it helpful to read about asynchronous processing systems.
      The simplest solution is to make a batch processing system.
      How to implement it is at your discretion, it can be done through the queue system, or in some other way.
      On the connection, if you really want to keep a long connection, then you can look towards the webSocket.

      • 0
      • Reply


    • Christian's avatar

      Daniel Flowers , the implementation is needed by the method of increasing the time out, I changed it everywhere – the situation remained the same.

      • 0
      • Reply


  3. Anthony Jimenez's avatar

    <?php
    ini_set('max_execution_time', 1800);

    Doesn’t this work?

    • 0
    • Reply


    • Christian's avatar

      Now I’ll try and write, this or not

      • 0
      • Reply


    • Christian's avatar

      No, still 504 Gateway Time-out.

      • 0
      • Reply


    • Christian's avatar


    • Anthony Jimenez's avatar

      Thomas , try editing php.ini, namely max_execution_time parameter, restart web server and check.

      • 0
      • Reply


    • Paul Smith's avatar

      Timothy Day , This won’t help. Here the nginx limit on the response from the backend comes out the same.

      • 0
      • Reply


    • Anthony Jimenez's avatar


    • Christian's avatar


    • Anthony Jimenez's avatar

      Thomas , how does the request logically go to the php interpreter?
      Client -> Apache -> Nginx -> PHP?

      • 0
      • Reply


    • Christian's avatar

      Timothy Day , Yes, from client to apache, then distributed to nginx and after php

      • 0
      • Reply


    • Anthony Jimenez's avatar

      And why such difficulties in the development process? 504 code who shows you, Apache or Nginx? If Apache, then try changing the httpd.apache.org parameter. If Nginx, then, as noted above, the directives nginx.org and nginx.org.

      • 0
      • Reply

При запуске скриптов PHP требующих длительного выполнения бывает часто, что появляется ошибка 504 Gateway Time-out nginx, — это говорит о том, что nginx работает в режиме прокси и обрубает коннект не дождавшись выполнения скрипта.

Для решения этой проблемы в моем случае помогли следующие манипуляции:

    1) Увеличил время выполнения PHP скриптов.

504 Gateway Time-out - max_execution_time

Выставляем значение max_execution_time = 360 — это означает 360 сек.

     2) В конфиг nginx добавляем директивы позволяющие ожидать выполнения скрипта более длительное время.

В ispManager это делается так — Домены -> WWW-домены -> Конфиг -> Добавляем как на скрине, сохраняем и готово!

Поставлю 600 (600 сек.) — этого должно быть достаточно.

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

Вот и все, теперь скрипты будут выполняться долго и nginx будет дожидаться выполнения — это очень часто требуется при парсинге или импорте/экспорте товаров (в моем случае).

Понравилась статья? Поделить с друзьями:
  • Openserver отключить вывод ошибок
  • Openserver не найден файл конфигурации ошибка
  • Openserver phpmyadmin ошибка
  • Openserver php не показывает ошибки
  • Openproj ошибка при установке