504 gateway time out перевод


Ошибка под номером 504 наиболее распространена среди сайтов на просторах интернета. В подавляющем большинстве случаев пользователи видят надпись «504 Gateway Time-out (time out)» на белом фоне и уходят с сайта, не разбираясь в причинах потери работоспособности ресурса. Куда более неприятно видеть код 504 владельцам сайта, особенно если неизвестно какими причинами была вызвана ошибка и что нужно делать, чтобы её исправить.

Ошибка 504: причины и решение проблемы

Что означает ошибка «504 Gateway Time-out»

Ошибка 504 означает, что сервер, на котором расположен сайт, не успевает обработать запрос и вернуть в заданный лимит времени HTTP ответ пользователю. Чаще всего такая ситуация возникает при большой нагрузке на сервер: не имея возможности вовремя обрабатывать все запросы, сервер прерывает необработанные соединения по истечении установленного лимита времени. Если это происходит, вместо загрузки сайта пользователь видит на странице ошибку «504 Gateway Time-out».

Техническая сторона вопроса

В подавляющем большинстве случаев проблема с кодом 504 возникает:

  • если на сервере в качестве бэкенда установлен Apache;
  • при этом в качестве фронтенда установлен nginx.

Такое сочетание чаще всего генерирует ошибку 504 с примечанием Gateway Time-out. В такой связке nginx выступает в качестве чего-то вроде распределителя запросов пользователя, и они сначала попадают к нему, а не напрямую в Apache. И если из-за высокой нагрузки сервер Apache не смог вовремя ответить, nginx пошлёт пользователю соответствующий ответ в виде кода 504.

Из-за чего появляется ошибка 504

Появление ошибки 504 характерно для серверов Apache в случае большой нагрузки. Такие сервера имеют особенность: при поступлении большого количества запросов они не успевают обрабатываться. Всем пользователям, у которых браузеры не получили HTTP-ответ от сервера, будет показана ошибка 504 Gateway Time-out.

Сталкиваясь с проблемой большой нагрузки, Apache не сразу начинает отдавать код 504. Сначала все запросы, которые не могут быть обработаны прямо сейчас, выстраиваются в очередь. При превышении лимита времени на ожидание HTTP-ответа соединение разрывается, и только тогда появляется ошибка. Со стороны пользователя сайт будет пытаться загрузиться несколько секунд, но фактически загрузка не начинается, поскольку сервер не отвечает.


Из-за чего появляется ошибка 504 gateway time out

Ошибка на стороне скриптов

Иногда код «504 Gateway Tme-out» вызывает не чрезмерная нагрузка, а неправильная настройка скриптов на сайте. Любому скрипту отводится определённый отрезок времени на выполнение. На практике, по ряду причин, этого времени скрипту может не хватить.

Обычно скриптам не хватает времени на загрузку в том случае, если они располагаются на стороннем сервере. В свою очередь, такие сервера очень часто сами находятся под огромной нагрузкой (из-за того, что сотни и тысячи сайтов при каждом заходе пользователей подгружают определённый код). Если отведённое время истекает, но скрипт так и не получает ответ от сервера, он также может выдать ошибку 504.

Задержка в процессе выполнения скриптов на сайте может вызываться и другими причинами:

  1. Если скрипту для работы необходимы внешние ресурсы (к примеру, база данных на стороннем сервере), которая на данный момент недоступна.
  2. Если скрипт работает не напрямую, а с установкой соединения через прокси-сервер. В случае недоступности прокси-сервера или превышения времени ожидания ответа скрипт также выдаст код 504.
  3. Скрипт загружает данные со сторонних серверов, которые на данный момент недоступны.

Как объяснить появление ошибки 504 gateway time out

Как решить проблему 504

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

  1. Попробовать определить основные источники нагрузки на сервере. Нужно найти, какие именно запросы обрабатываются дольше всего и приводят к возникновению очереди и последующей ошибки 504, и оптимизировать эти места.
  2. Оптимизировать все скрипты. Желательно, чтобы загружаемые сайтом скрипты физически находились на том же сервере, что и сам сайт, или по крайней мере на физическом пространстве, находящемся под контролем владельца сайта. Если оптимизировать скрипты, настроить время их выполнения и выделить необходимые для этого серверные ресурсы, ошибка 504 перестанет возникать из-за скриптов.
  3. Можно пойти простым путём: просто увеличить ресурсы сервера, если есть такая возможность. Увеличение оперативной памяти, количества процессов httpd для Apache и другие меры повышения производительности приведут к тому, что серверу снова станет хватать ресурсов для выполнения запросов. Правда, подобное решение может являться лишь временной мерой, и с ростом нагрузки отсутствие должной оптимизации опять заявит о себе.

Решение ошибки 504 gateway time out

В том случае, если сайт с достаточно высокой посещаемостью (или требующий много ресурсов) располагается на обычном виртуальном хостинге, мощностей может элементарно не хватать. Некоторые хостеры присылают своим клиентам уведомления о превышении допустимой нагрузки, некоторые – нет. Следует посмотреть логи и запросить нужную информацию о технической поддержке хостинга. Вполне возможно, что с сайтом всё в порядке, просто из-за роста посещаемости пора переходить на VPS, VDS и другие тарифы и услуги с существенно большими ресурсами.

liveposts.ru

Что значит 504 gateway time out Nginx?

504 gateway time out перевод

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


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

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

Как исправить 504 gateway time out Nginx?

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

free -h

504 gateway time out перевод

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

htop

504 gateway time out перевод

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

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


fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

504 gateway time out перевод

Здесь 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

504 gateway time out перевод

 

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

504 gateway time out перевод

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

Выводы


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

losst.ru

Что такое 504 Gateway Time-out и каковы её причины

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

То есть, проще говоря, базовый сервер не получил вовремя ответ от другого, нужного ему, сервера. Похожей ошибкой является 400 Bad request, что значит эта проблема я описал в статье ранее.

Отсутствие своевременного ответа от нужного сервера становится причиной возникновения ошибки 504
Отсутствие своевременного ответа от нужного сервера становится причиной возникновения ошибки 504

Причины ошибки 504 Gateway Time-out могут быть следующими:


  • Вебмастер некорректно настроил проблемный сервер;
  • На проблемном сервере наблюдаются какие-либо технические проблемы;
  • На проблемном сервере некорректно работают различные скрипты;
  • Имеются проблемы с сетевым подключением у самого пользователя (нестабильно работают роутер или модем, сбились настройки DNS и так далее);
  • На требуемый сервер оказывается большая нагрузка пользовательских запросов, и сервер не успевает их обрабатывать.

    Изучаем ошибки 504
    Изучаем ошибки 504

Как исправить ошибку 504 Gateway Time-out

Как я уже писал выше, данная проблема обычно связана с некорректно работающим сервером, и вины пользователя, столкнувшегося с ошибкой 504 Gateway Time-out, в случившемся нет. Тем не менее, рекомендую таким пользователям выполнить следующее:

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

  • Перезапустите ваш роутер (модем). В небольшом количестве случаев сбои в работе указанных устройств могут вызывать проблемы с интернет-соединением, и появление ошибки 504;

    Перезагрузите ваш роутер с помощью нажатия на кнопку включения-выключения
    Перезагрузите ваш роутер с помощью нажатия на кнопку включения-выключения
  • Если вы используете прокси для работы в сети, проверьте настройки прокси, и убедитесь, что всё работает стабильно и без сбоев;
  • Попробуйте сменить настройки ваших DNS серверов. Для этого нажмите на кнопку «Пуск», в строке поиска введите ncpa.cpl и нажмите ввод. В открывшемся списке сетевых подключений найдите ваше интернет-подключение, наведите на него курсор, нажмите правую клавишу мыши и выберите «Свойства». В списке компонентов найдите протокол версии 4, и дважды кликните на нём. В открывшемся окне выберите опцию «Использовать следующие адреса ДНС-серверов», и укажите какие-либо публичные адреса, например от:
504 gateway time out перевод
Попробуйте использовать настройки DNS от компании «Google»
  • Свяжитесь с вашим интернет-провайдером, и уточните, нет ли у него на данный момент каких-либо проблем с сетью;
  • Напишите письмо (или найдите иную форму уведомления) собственникам проблемного ресурса об имеющейся проблеме.
  • Если вы собственник ресурса на «WordPress», и пользователи на вашем ресурсе получают ошибку 504, то это может быть лакмусом повреждённой базы данных. Установите программу «WP-DBMananer», а затем активируйте в ней опцию «Repair DB» (починить базу данных). Также убедитесь, что файл «HTACCESS» не повреждён;

    Используйте "WP-DBMananer" для исправления ошибок в вашей базе
    Используйте «WP-DBMananer» для исправления ошибок в вашей базе
  • Если проблема связана с большой нагрузкой на сервер, то, возможно, стоит провести оптимизацию сервера (например, добавить оперативной памяти), оптимизировать скрипты, увеличить количество одновременно обрабатывающихся процессов, увеличить значение переменной «php_value max_execution_time» в файле .htaccess.

it-doc.info

ЕСЛИ ВЫ НЕ МОЖЕТЕ ЗАЙТИ НА СТРАНИЦЫ И ВАМ ПИШУТ СТРАНИЦА ЗАБЛОКИРОВАНА !!!НЕ ОТПРАВЛЯЙТЕ СМС НЕ КОМУ) СОЦСЕТИ НЕ ПРОСЯТ СМС НЕ КОГДА ))

Исправить такую ошибку вполне возможно собственными силами. Нужно открыть папку C:WINDOWSsystem32driversetc. Найти в ней файл hosts (он не имеет расширения) . Нажать правой кнопкой мыши на нем. В появившемся меню выбрать пункт «Свойства».
В открывшемся окне снять галочку «Только чтение» и нажать кнопку «OK». Этой галочки может и не быть. Не пугайтесь — такое случается

Снова щелкаем правой кнопкой мышки на файле hosts. На этот раз нужно выбрать «Открыть с помощью» — «Блокнот». Можно использовать и встроенный редактор Wordpad. В этом открытом файле нужно удалить все, кроме записи: «127.0.0.1 localhost».
Это, конечно, наиболее радикальный вариант. Часто в этом файле есть записи, которые оставлены вполне благонадежными программами. Так что, теоретически, можно удалить не все записи. Найдите среди записей этого файла те, которые содержат адреса сайтов на которые невозможно попасть, и сотрите именно эти строки.
Не забудьте нажать после этого кнопку «Сохранить». После этого желательно активировать атрибут «Только для чтения» в «Свойствах» файла hosts. После этого, как правило, сайты антивирусов, поисковики,
соцсети и тому подобные сайты начинают открываться!!!!Внимание если вы не обнаружили в файле hosts вот такую запись «127.0.0.1 localhost»,Значит у вас вирус прописал еще такой же файл hosts и скрыл его) )
Мы делаем следующие действия 1)Заходим в панель управления 2)Выбираем раздел Параметр папок, Далее в открывшимся окне щелкаем вкладку Вид и ставим Помечаем в Самом низу ПОКАЗЫВАТЬ СКРЫТЫЕ ФАЙЛЫ, ПАПКИ И ДИСКИ !!!ЖМЕМ ПРИМЕНИТЬ )))ДАЛЕЕ ОПЯТЬ ЗАХОДИМ C:WINDOWSsystem32driversetc И ВОТ ЧУДО ВИДИМ ДВА hosts ФАЙЛА) )
А ТЕПЕРЬ ЕСЛИ МЫ ВИДИМ ДВА hosts ФАЙЛА НАМ НУЖЕН hosts В КОТОРОМ ЕСТЬ ЗАПИСЬ «127.0.0.1 localhost»)))ДРУГОЙ ЖЕ ГДЕ НЕТ НАШЕЙ ЗАПИСИ СМЕЛО УДАЛЯЕМ)) А В НАШЕМ hosts В КОТОРОМ ЕСТЬ ЗАПИСЬ «127.0.0.1 localhost»УДАЛЯЕМ ВСЕ ЗАПИСИ САЙТОВ И АДРЕСА КРОМЕ «127.0.0.1 localhost»И НЕ ЗАБЫВАЕМ НАЖАТЬ СОХРАНИТЬ)) )
ВНИМАНИЕ ПОСЛЕ ЭТИХ ДЕЙСТВИЙ ПЕРЕЗАГРУЗИТЕ КОМПЬЮТЕР И БУДЕТ ВАМ СЧАСТЬЕ И ДОСТУП КО ВСЕМ РЕСУРСАМ КОТОРЫЕ БЫЛИ БЛОКИРОВАНЫ)) ПРИ ВХОДЕ НА СТРАНИЦУ ПОСЛЕ ПЕРЕЗАГРУЗКИ МЕНЯЕМ СРАЗУ ВСЕ ПОРОЛИ СОЦСЕТЕЙ ОБЯЗАТЕЛЬНО)) ТАК КАК ОНИ УГНАНЫ )))
ЖЕЛАЮ УДАЧИ!!!
P.S ЕСЛИ ВЫ НЕ МОЖЕТЕ СОХРАНИТЬ ИЗМЕНЕНИЯ ТО ПРОСТО КОПИРУЕТЕ ХОСТ ФАЙЛ НА РАБОЧИЙ СТОЛ ТАМ ДЕЛАЕТЕ ИЗМЕНЕНИЯ И ВСТАВЛЯЕТЕ ОБРАТНО СОГЛАШАЯСЬ НА ЗАМЕНУ!

ВОТ ВИДЕО ПРИМЕР http://youtu.be/kBXk_4kRvm0

otvet.mail.ru

Борьба с ошибкой 504 Gateway Time-out

Что значит ошибка 504 gateway time-out

Итак, на своём сайте мы столкнулись с ошибкой 504 Gateway Time-out и не знаем, что же делать. В этом посте постараюсь описать полный алгоритм действий для решения этой проблемы, а так же поведать о причинах её возникновения. Следуйте под кат!

Так вот, продолжим.

Для начала выясним, что это за HTTP код ошибки такой, а точнее, что же он  означает? 504 — пятьсот четвёртая ошибка, она же Gateway Timeout, а точнее, на русском это звучит примерно так: «Время прохождения через шлюз истекло». Код означающий, что сервер при работе в качестве внешнего шлюза или прокси-сервера не получил своевременно отклик от вышестоящего бэкенда сервера, к которому он обратился, пытаясь исполнить запрос.

По этой ошибке легко можно представить внутреннюю организацию вашего web сервера. Это явно связка двух web серверов в которой один выступает в роли фронтенда (переднего сервера) и второй в качестве бэкенда (заднего сервера).

И скорее всего, так бывает в 99% случаев, установлен веб сервер nginx, который выступает в качестве фронтенда и так же стоит сервер Apache в качестве бэкенда.

Nginx берёт на себя роль распределяющего proxy сервера и отдаёт статику (картинки, файлы), а apache вместе с PHP обрабатывает динамику, там же и MySQL неподалёку. И ошибку  504 Gateway Time-out вы получаете именно от nginx.

В общем вернёмся к делу. Ситуация предельно ясна! За отведённое время сервер nginx просто не дожидается обратного ответа от apache и сообщает об этом вам. Т.е. прослеживаются явные перегрузки на «внутренней» стороне бэкенда.

Другой вопрос в том, что именно порождает эти перегрузки от чего apache не успевает во время ответить? Это уже вопрос другой. Тут так просто не разобраться, надо смотреть логи сервера. Ну понятное дело, что кто-то перегружен.

Либо скрипт долго работает, либо СУБД не успевает обработать множество запросов, что кстати бывает чаще всего ведь коннектор с СУБД это самое слабое место. В общем ваш внутренний сервер не успевает в срок выполнить скрипт, точнее он просто долго выполняет, а nginx не хочет ждать и спешит отдать вам 504 ошибку.

От чего не укладывается по времени apache так же ясно, либо много запросов извне и ресурсов сервера не хватает (это можно узнать из счётчика посещаемости сайта), либо выполняемый скрипт очень тяжёлый.

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

В общем, ближе к делу, наша задача сказать серверу nginx, что бы он ждал ответа от apache подольше и не торопился отдавать клиенту ошибку 504. С этим всё просто! Естественно нужно иметь root доступ к своему серверу, о виртуальных хостингах и даже говорить не буду.

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

Плюс ко всему всё ещё зависит от того в каком режиме работает nginx и кто его вам настраивал. Грубо говоря нам нужен текущий файл настроек сервера nginx для требуемого виртуального хоста (сайта) либо же для всего сервера в целом. Возможно это даже будет nginx.

conf, как в общем-то и должно быть.

Далее будут показывать на своём примере, думаю применить к себе будет не сложно, ОС Linux Ubunut.

Заходим в условный файл настроек виртуальных хостов сервера nginx, расположенному по адресу: /etc/nginx/nginx.conf

Здесь можем либо поискать уже установленные директивы (если есть) или дописать вручную. Можно дописать естественно как для всех хостов, так и для каждого конкретного, не важно. В общем пишем следующее:

proxy_send_timeout 60; # время ожидания при передаче запроса proxy_read_timeout 60; # время ожидания при чтении ответа

Эти директивы нужны для изменения времени ожидания. Лучше вставлять в контекст location. У меня получилось примерно следующим образом:

server { listen xxx.xxx.xxx.xxx:80; # ip адрес сервера и прослушиваемый порт server_name someserver.loc; # имя сервера rewrite ^(/manager/.*)$ https://$host$1 permanent; error_page 404 = @fallback; # Далее две строки, которые надо добавить proxy_send_timeout 600; # время ожидания при передаче запроса proxy_read_timeout 600; # время ожидания при чтении ответа location / { proxy_pass http://xxx.xxx.xxx.xxx:8080; # протокол и адрес проксируемого сервера, а также необязательный URI, на который должен отображаться location proxy_redirect http://sitename.loc:8080/ /; # текст, который нужно изменить в полях заголовка “Location” и “Refresh” в ответе проксируемого сервера proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } }

Далее сохраняем файл конфигурации и перезапускаем сервер nginx. Теперь он будет ждать ответа от apache именно столько времени, сколько вы указали в добавленных директивах, а не по значению по умолчанию. Думаю понятно, что время вы сами выставляете какое хотите. Всё, теперь ошибка 504 Gateway Time-out вас беспокоить не будет.

Понятное дело, что это лишь вершина айсберга и нужно будет разбираться с самой причиной долгой генерации страницы, но это уже другая тема. Возможно придётся так же поставить таймаут побольше и для PHP, а то может быть такое, что и он начнёт ругаться, мол ему дают мало времени на обработку. Для этого используем PHP директивы max_input_time и max_execution_time в файле настроек PHP — php.

ini или в файле локальных настроек сервера Apache — .htaccess

Дополню тем, что если вы используете сервер Apache в качестве переднего сервера (фронтенда) и получаете ошибку 504 Gateway Time-out именно от него, тогда можно попробовать поменять опцию Timeout, находится в файле конфигураций веб сервера, чаще всего это либо httpd.conf или httpd-default.conf. Находим следующие строки:

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

Вместо 60 пишем своё новое значение, рекомендую не мелочиться и сразу поставить на 600 секунд (Timeout 60), т.е. 10 минут.

На этом пожалуй всё, думаю проблема 504 Gateway Time-out теперь для вас решена.

Источник: http://softodom.com/604/borba-s-oshibkojj-504-gateway-time-out.html

Как исправить 504 gateway time out Nginx

504 gateway time out перевод» alt=»Как исправить 504 gateway time out Nginx» width=»» height=»» class=»alignleft» />

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

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

Что значит 504 gateway time out Nginx?

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

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

Дальше рассмотрим что можно сделать если вы встретились с ошибкой 504 gateway time out 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, а также почему может возникнуть эта ошибка. Надеюсь, эта информация была полезной для вас.

Источник: https://losst.ru/kak-ispravit-504-gateway-time-out-nginx

Ошибка 504 Gateway Timeout (time out) nginx. Как исправить. Хостинг в деталях

В этой статье описаны причины возникновения ошибки 504 Gateway Timeout (time out).

Часто ошибку можно видеть на серверах, где установлен nginx в качестве фронтенда и Apache в качестве бэкенда. И многие думают, что проблема в nginx. Это не так.

504 Gateway Timeout — значит, что клиентский запрос nginx передал апачу, а апач не смог в установленный лимит времени вернуть HTTP-ответ. Немного подробнее о взаимоотношениях nginx’а и апача в статье про 502 Bad Gateway.

Почему Apache не смог ответить?

Скорее всего дело в возросшей нагрузке на сайт, при которой Apache не успевает отдавать HTTP-ответы, и новые запросы встают в очередь. Клиенты «висят» в очереди, но за приемлемое время их так и не успевают обслужить, поэтому соединения сбрасываются.

Чтобы решить проблему, можно добавить ресурсов серверу, в частности оперативной памяти, и увеличить количество процессов httpd (Apache). Другой вариант — оптимизировать работу скриптов сайта, чтобы они выполнялись быстрее. Если вы на обычном виртуальном хостинге, то без усилий администрации ситуация не улучшится. Если проблема не решается, надо искать другого провайдера.

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

Варианты решения: увеличить значение параметра PHP max_execution_time или облегчить скрипт.

Критические замечания к статье приветствуются.

Источник: http://hosting101.ru/504-gateway-timeout.html

Ошибка 504 Gateway Time-out (nginx), как правильно исправить

Ваш сайт находится на сервере (чаще всего Apache), когда вы хотите просмотреть сайт, то через браузер посылается запрос к серверу.

Но этот запрос не сразу попадает на Apache, а сначала он приходит на nginx-сервер (своего рода распределитель запросов), а тот уже посылает его на Apache.

Так вот, ошибка 504 Gateway Time-out обычно происходит из-за того, что сервер nginx передал запрос на Apache, но в течение определенного времени не получил от него ответ.

Почему это происходит?

Зачастую, данная ошибка является следствием большой нагрузки на сервер, в итоге Apache не успевает обрабатывать запросы, а nginx не дождавшись ответа, обрывает соединение и выдает в браузер пользователя сообщение об ошибке.

Такая критичная нагрузка обычно происходит либо из-за огромного количества посетителей сайта, либо из-за тех процессов, которые происходят внутри самого сайта.

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

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

Неправильная работа сайта

В этом случае нужно оптимизировать сайт, причем таким образом, чтобы работа скриптов укладывалась в отведенное время. Если для оптимизации нет возможности, то может помочь изменение параметра, который отвечает за максимальное время ожидания работы скрипта. Для этого в файле .htaccess нужно написать:

Где N — это время ожидания в секундах, обычно по умолчанию оно равно 30 секунд. Но такая процедура помогает не у всех хостинг-провайдеров, и в таком случае следующим Вашим шагом должно стать обращение в службу поддержки или же смена хостинг-провайдера.

Не нашли ответ на свой вопрос?Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Источник: https://ru.hostings.info/schools/504-gateway-time-out-nginx.html

504 Gateway Time-out что значит

504 Gateway Time-out что значит

При переходе на интернет страницу пользователь может столкнуться с невозможностью получения доступа к содержимому указанного сайта, и соответствующим сообщением «504 Gateway Time-out».

Обычно данная проблема возникает из-за отсутствия ответа от требуемого сервера на протяжении фиксированного промежутка времени, и прямой вины пользователя в этом нет.

В данном материале я расскажу, что значит 504 Gateway Time-out, каковы причины данной проблемы, и как исправить ошибку на вашем ПК.

Ошибка 504 в окне браузера

Что такое 504 Gateway Time-out и каковы её причины

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

То есть, проще говоря, базовый сервер не получил вовремя ответ от другого, нужного ему, сервера. Похожей ошибкой является 400 Bad request, что значит эта проблема я описал в статье ранее.

Отсутствие своевременного ответа от нужного сервера становится причиной возникновения ошибки 504

Причины ошибки 504 Gateway Time-out могут быть следующими:

  • Вебмастер некорректно настроил проблемный сервер;
  • На проблемном сервере наблюдаются какие-либо технические проблемы;
  • На проблемном сервере некорректно работают различные скрипты;
  • Имеются проблемы с сетевым подключением у самого пользователя (нестабильно работают роутер или модем, сбились настройки DNS и так далее);
  • На требуемый сервер оказывается большая нагрузка пользовательских запросов, и сервер не успевает их обрабатывать.Изучаем ошибки 504

Как исправить ошибку 504 Gateway Time-out

Как я уже писал выше, данная проблема обычно связана с некорректно работающим сервером, и вины пользователя, столкнувшегося с ошибкой 504 Gateway Time-out, в случившемся нет. Тем не менее, рекомендую таким пользователям выполнить следующее:

  • Перегрузите проблемную страницу (обычно с помощью нажатия на F5), или вновь введите требуемый адрес в адресную строку вашего браузера, и нажмите ввод;
  • Просто подождите. Ошибка может иметь временный характер, связанный с техническими работами на сервере и иными релевантными причинами. Обычно через некоторое время работа сервера нормализуется, и пользователь получает доступ к требуемому ресурсу;
  • Перезапустите ваш роутер (модем). В небольшом количестве случаев сбои в работе указанных устройств могут вызывать проблемы с интернет-соединением, и появление ошибки 504;Перезагрузите ваш роутер с помощью нажатия на кнопку включения-выключения
  • Если вы используете прокси для работы в сети, проверьте настройки прокси, и убедитесь, что всё работает стабильно и без сбоев;
  • Попробуйте сменить настройки ваших DNS серверов. Для этого нажмите на кнопку «Пуск», в строке поиска введите ncpa.cpl и нажмите ввод. В открывшемся списке сетевых подключений найдите ваше интернет-подключение, наведите на него курсор, нажмите правую клавишу мыши и выберите «Свойства». В списке компонентов найдите протокол версии 4, и дважды кликните на нём. В открывшемся окне выберите опцию «Использовать следующие адреса ДНС-серверов», и укажите какие-либо публичные адреса, например от:

Источник: http://it-doc.info/504-gateway-time-out-chto-znachit/

Как исправить ошибку 504 Gateway Timeout Error?

Ошибка 504 Gateway Timeout Error в буквальном смысле означает, что один сервер не смог вовремя получить ответ от другого сервера, к которому он обращался, пытаясь выполнить запрос браузера или загрузить страницу. Проще говоря, ошибка указывает на то, что между сервером, на котором расположен Ваш сайт, и вашем компьютером отсутствует стабильное достаточно быстрое соединение с интернетом.

Существует несколько способов для решения проблемы.

Способ 1. Перезагрузка страницы в веб-браузере

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

Также можно попробовать открыть ту же страницу в каком-либо другом браузере. Кроме того, можно воспользоваться специальным онлайн-сервисом, показывающем недоступность сайта исключительно для вас или для всех пользователей. Если сервис выдал сообщение “site.

ru looks down from here”, то действительно сайт недоступен для всех.

Способ 2. Отключение параметров прокси

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

novpedkolledg2.ru

Итак, на своём сайте мы столкнулись с ошибкой 504 Gateway Time-out и не знаем, что же делать. В этом посте постараюсь описать полный алгоритм действий для решения этой проблемы, а так же поведать о причинах её возникновения. Следуйте под кат!

Так вот, продолжим. Для начала выясним, что это за HTTP код ошибки такой, а точнее, что же он  означает? 504 — пятьсот четвёртая ошибка, она же Gateway Timeout, а точнее, на русском это звучит примерно так: «Время прохождения через шлюз истекло». Код означающий, что сервер при работе в качестве внешнего шлюза или прокси-сервера не получил своевременно отклик от вышестоящего бэкенда сервера, к которому он обратился, пытаясь исполнить запрос.

По этой ошибке легко можно представить внутреннюю организацию вашего web сервера. Это явно связка двух web серверов в которой один выступает в роли фронтенда (переднего сервера) и второй в качестве бэкенда (заднего сервера). И скорее всего, так бывает в 99% случаев, установлен веб сервер nginx, который выступает в качестве фронтенда и так же стоит сервер Apache в качестве бэкенда. Nginx берёт на себя роль распределяющего proxy сервера и отдаёт статику (картинки, файлы), а apache вместе с PHP обрабатывает динамику, там же и MySQL неподалёку. И ошибку  504 Gateway Time-out вы получаете именно от nginx.

В общем вернёмся к делу. Ситуация предельно ясна! За отведённое время сервер nginx просто не дожидается обратного ответа от apache и сообщает об этом вам. Т.е. прослеживаются явные перегрузки на «внутренней» стороне бэкенда. Другой вопрос в том, что именно порождает эти перегрузки от чего apache не успевает во время ответить? Это уже вопрос другой. Тут так просто не разобраться, надо смотреть логи сервера. Ну понятное дело, что кто то перегружен. Либо скрипт долго работает, либо СУБД не успевает обработать множество запросов, что кстати бывает чаще всего ведь коннектор с СУБД это самое слабое место. В общем ваш внутренний сервер не успевает в срок выполнить скрипт, точнее он просто долго выполняет, а nginx не хочет ждать и спешит отдать вам 504 ошибку. От чего не укладывается по времени apache так же ясно, либо много запросов извне и ресурсов сервера не хватает (это можно узнать из счётчика посещаемости сайта), либо выполняемый скрипт очень тяжёлый.

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

В общем, ближе к делу, наша задача сказать серверу nginx, что бы он ждал ответа от apache подольше и не торопился отдавать клиенту ошибку 504. С этим всё просто! Естественно нужно иметь root доступ к своему серверу, о виртуальных хостингах и даже говорить не буду. В общем заходим на своей сервер, хоть даже по протоколу ssh в терминал и идём в папку с конфигурационными файлами сервера nginx. Сразу скажу, что они меняются от версии к версии и поэтому точно сказать какой именно файл будет не могу. Плюс ко всему всё ещё зависит от того в каком режиме работает nginx и кто его вам настраивал. Грубо говоря нам нужен текущий файл настроек сервера nginx. Возможно это даже будет nginx.conf, как в общем то и должно быть.

Далее будут показывать на своём примере, думаю применить к себе будет не сложно, ОС Linux Ubunut.

Заходим в условный файл настроек виртуальных хостов сервера nginx, расположенному по адресу: /etc/nginx/nginx.conf

Здесь можем либо поискать уже установленные директивы (если есть) или дописать вручную. Можно дописать естественно как для всех хостов, так и для каждого конкретного, не важно. В общем пишем следующее:

proxy_send_timeout 60; # время ожидания при передаче запроса  proxy_read_timeout 60; # время ожидания при чтении ответа

Эти директивы нужны для изменения времени ожидания. Лучше вставлять в контекст location. У меня получилось примерно следующим образом:

server {  	listen xxx.xxx.xxx.xxx:80; # ip адрес сервера и прослушиваемый порт  	server_name someserver.loc; # имя сервера  	rewrite ^(/manager/.*)$ https://$host$1 permanent;  	error_page 404 = @fallback;  	# Далее две строки, которые надо добавить  	proxy_send_timeout 600; # время ожидания при передаче запроса  	proxy_read_timeout 600; # время ожидания при чтении ответа  	location / {  		proxy_pass http://xxx.xxx.xxx.xxx:8080; # протокол и адрес проксируемого сервера, а также необязательный URI, на который должен отображаться location   		proxy_redirect http://sitename.loc:8080/ /; # текст, который нужно изменить в полях заголовка “Location” и “Refresh” в ответе проксируемого сервера  		proxy_set_header Host $host;  		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  		proxy_set_header X-Real-IP $remote_addr;  	}  }

Далее сохраняем файл конфигурации и перезапускаем сервер nginx. Теперь он будет ждать ответа от apache именно столько времени, сколько вы указали в добавленных директивах, а не по значению по умолчанию. Думаю понятно, что время вы сами выставляете какое хотите. Всё, теперь ошибка 504 Gateway Time-out вас беспокоить не будет. Понятное дело, что это лишь вершина айсберга и нужно будет разбираться с самой причиной долгой генерации страницы, но это уже другая тема. Возможно придётся так же поставить таймаут побольше и для PHP, а то может быть такое, что и он начнёт ругаться, мол ему дают мало времени на обработку. Для этого используем PHP директивы max_input_time и max_execution_time в файле настроек PHP —php.ini или в файле локальных настроек сервера Apache — .htaccess

Дополню тем, что если вы используете сервер Apache в качестве переднего сервера (фронтенда) и получаете ошибку 504 Gateway Time-out именно от него, тогда можно попробовать поменять опцию Timeout, находится в файле конфигураций веб сервера, чаще всего это либо httpd.conf илиhttpd-default.conf. Находим следующие строки:

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

Вместо 60 пишем своё новое значение, рекомендую не мелочиться и сразу поставить на 600 секунд (Timeout 60), т.е. 10 минут.

На этом пожалуй всё, думаю проблема 504 Gateway Time-out теперь для вас решена.

vagur.wordpress.com

Решение ситуации

Существует несколько способов того, как решить проблему:

  • Аппаратный.
  • Программный.
  • Оптимизированный.
  1. Первый подразумевает приобретение дополнительной операционной памяти и увеличение мощности главного процессора, который отвечает за работу сервера.
  2. Второй требует облегчения скриптов, особенно если этот элемент дополнительно в своей работе выполняет обращение к огромному числу разнообразных сайтов. Параллельно этому действию рекомендуется увеличить значения, установленные для параметра PHP max_execution_time.
  3. Последний способ того, как исправить 504 gateway time out nginx, заключается в процедуре оптимизации всех процессов, которые выполняет сервер во время своего функционирования. Это и скрипты и SQL запросы, и так далее. Естественно, что для этой процедуры, как минимум надо обладать правами на администрирование, а в идеальном варианте – иметь полный доступ ко всей системе.

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

windowserror.ru

Что означает данная 504 ошибка и что делать?

Давайте признаемся самим себе — мы не можем прожить без интернета. Представьте современного человека, который не пользуется интернетом. Либо это человек, проживающей в отдалённой от города местности (селе, посёлке), либо человек преклонного возраста.

А может быть и два в одном. Каждый человек активно пользуется интернетом, он только облегчает нашу жизнь. Но пользуемся мы чем? Браузерами. Они дают доступ ко всем возможным сайтам, но… Бывают случаи, когда на сайт зайти не получается.

Возникает ошибка 504 gateway time-out. А что оно вообще такое? Давайте приступим к разбору.

Что такое 504 gateway time-out

На самом деле, у каждого сайта есть свой HTTP. Это такой определённый доступ к сайту, который позволяет загружать из него любую информацию. Без разницы, что из себя представляет эта информация, сайт должен загрузиться сам. И чтобы он загрузился, нужно использовать браузер.

Но ведь бывает ошибка, которая имеет число 504. У неё есть несколько классификаций. Либо она возникает в случае, когда на сайте технические неполадки. Либо она возникает, когда не получается установить связь с сайтом. В нашем случае происходит именно ошибка номер два.

Почему мы так решили? Потому что «gateway time-out» означает, что вышло время на загрузку этого самого сайта. Странно, но как она возникает? Давайте разбираться.

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

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

Он не даёт получить доступ из-за своей ограниченной скорости, что и приводит к негативным последствиям. Если же не грузят другие сайты так же, как и этот, то звоните своему провайдеру. Это его проблемы.

Вторая причина — неполадки на сайте. Да, мы упомянули их выше, но сейчас расскажем поподробнее. Что такое сайт? Это такая страница, которая позволяет содержать на себе абсолютно разную информацию. Будь то какие-то развлекательные или поучительные мотивы.

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

Или же не остановила, но в следствии ремонтных работ пропал сам сайт. Бывает и так. Так что не стоит переживать и винить сразу провайдера, может проблема на стороне самих создателей сайта.

Третья причина — нестабильная работа сайта. А вот этот пункт объединяет сразу два прежних. В него мы решили вместить ту информацию, без которой Вы не можете обойтись. Если сайт не грузит, то есть две причины.

Либо у него крайне нестабильная связь, либо он сам не грузит. И вот в том случае, когда у него плохая связь может быть так, что Вы открыли страницу. Вы активно ей пользуетесь, всё в порядке, а потом оп, и она снова выключается. Вернее, пропадает, будто и не работала.

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

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

На этом всё. Наша статья завершается на очень позитивной ноте. Мы сумели решить проблему легко и просто. Часто проблемы решаются лёгким путём, часто — не особо.

В этой статье мы подобрали лёгкие методы. Хотя это даже не методы, а скорее объяснение проблемы, которую нужно решать либо своими руками, либо руками других людей. Странно звучит, но это так. Мы благодарим Вас, уважаемого читателя за то, что Вы дочитали эту статью до конца.

Мы крайне надеемся, что она оказалась полезной для Вас, ведь описанная выше ошибка возникает часто, а как решать — не знает никто. Используйте эту статью в любой ситуации и у Вас никогда не будет проблем в дальнейшем.

К тому же, лучше узнать о проблеме от профессионалов, которые помогут решить её. Не нужно стараться сделать всё самому. Может быть, это будет очень плохим решением для Вас. Желаем Вам никогда больше не встречаться с такого рода проблемой и быть всегда на позитиве!

zajmy-onlayn.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.