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

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
Здравствуйте!

На админской части сайта после запуска в ней по всей видимости тяжелой задачи по подхватыванию и распознаванию 180 подгруженных через ftp картинок, теперь отображается 504 Gateway Time-out с подписью nginx. В логе ошибок примерно такое
2016/01/11 13:28:14 [error] 7678#0: *1227364 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 62.76.80.15, server: mysite.ru, request: "GET /administrator HTTP/1.1", upstream: "http://mysite.ru:81/administrator", host: "www.mysite.ru"
Пытался увеличить лимиты в nginx.conf и делал service nginx restart после этого, но то ли слабо повысил, то ли ещё что, админка пока не открывается

Как можно разобраться в причине ошибки и её устранить? Может надо весь VPS перезагрузить и все заработает?
*

voland

  • Профи
  • 9513
  • 422
  • Эта строка съедает место на вашем мониторе
Ничего не надо делать.
ну ошибка, дальше работаем.
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
Ничего не надо делать.
ну ошибка, дальше работаем.
так мне надо в админку, а она открывается этой ошибкой :)
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
Логи nginx посмотрите. И нагрузку на VPS в это время.
в логах указано то, что я привел в первом посте. А как узнать нагрузку на VPS на какой-то конкретный момент в прошлом?
Вот вывод текущего top:
*

dmitry_stas

  • Профи
  • 10040
  • 953
в другом браузере пускает в админку?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
в другом браузере пускает в админку?
похоже я словил кэш :) сбросил кэш хрома и заработало, полдня ушло... :) все, зарубил себе на носу

P.S.вопрос про нагрузку в любой момент прошлого остается актуальным
*

dmitry_stas

  • Профи
  • 10040
  • 953
скорее не кеш, а в сессии сохранилось (и не удалилось, потому что 504) что-то, из-за чего каждый раз заново был запуск
по всей видимости тяжелой задачи по подхватыванию и распознаванию 180 подгруженных через ftp картинок
и так по кругу.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
504 Gateway Time-out с

возможно, поможет предотвратить появление этой ошибки увеличение  max_execution_time (_http://php.net/manual/ru/info.configuration.php#ini.max-execution-time) для твоего PHP.
для конкретного скрипта можно используй set_time_limit() (_http://php.net/manual/ru/function.set-time-limit.php)
К примеру, в той функции, что загружает твои картинки - укажи set_time_limit(150) и обработай снова запрос. Посмотри на результат.

для всего сайта - напиши в httaccess
php_value max_execution_time 60
Глобально - измени max_execution_time в php.ini

Так же попробуй изменить max_input_time (_http://php.net/manual/ru/info.configuration.php#ini.max-input-time)

в логах указано то, что я привел в первом посте. А как узнать нагрузку на VPS на какой-то конкретный момент в прошлом?
Вот вывод текущего top:


Устанави на ВПС отличную утилиту мониторинга производительности системы с веб-интерфейсом. Советую Munin (munin-monitoring.org). У нее простые настройки.. ест мало памяти, дает обширную информацию, как по производительности самой системы (память, процессор, кэш, процессы в памяти, аптайм, запросы, хосты.. и прочее.. так же достаточно просто расширить функционал - установив дополнительные счетчики. Счетчики доступны на оф. сайте или в сети в виде текстовых файлов с алгоритмами.. ) Статистику смотришь через веб-интерфейс с любого браузера и с любой точки мира. (для этого просто установи веб-сервер, если не установлен..  и помести все файлы Munin в файловую систему веб-сервера, настрой .httaccess для доступа к статистике по учетным данным.)
« Последнее редактирование: 12.01.2016, 00:31:45 от Yura Vakulenko »
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
скорее не кеш, а в сессии сохранилось (и не удалилось, потому что 504) что-то, из-за чего каждый раз заново был запуски так по кругу.
Доброго утра! Спасибо. И как в этом случае надо выходить из ситуации?
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
для всего сайта - напиши в httaccess
php_value max_execution_time 60
Глобально - измени max_execution_time в php.ini
Спасибо за дельный совет, попробую воспользоваться как зависнет снова. Хотя вопрос, как я запущу задачу сновыми настройками php, если у меня снова будет 504 ошибка на весь экран?..
То, что вы в цитате посоветовали относится к Апачи. Для этого мне надо разобраться сначала, Апачи или Nginx у меня висит на админке. Прошу в этом помочь разобраться. Вот кусок настроек nginx.conf:
Спойлер
[свернуть]
*

voland

  • Профи
  • 9513
  • 422
  • Эта строка съедает место на вашем мониторе
PHP обрабатывается апачем, потом через нгинкс
Когда нгинкс не дожидается ответа (по дефолту 30 сек) он сам отдает 504
При это апач может дальше обрабатывать скрипт и может даже успешно его завершить если он успеет во временные рамки апача, по совету выше это 60 секунд.

Как вариант для выполнения долгих задач - временно (лучше временно) выставить секунд 600 (или сколько там точно хватит) и обращаться на сайт напрямую в апач по адресу site.ru:81/administrator
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
спасибо
Когда нгинкс не дожидается ответа (по дефолту 30 сек) он сам отдает 504
за это отвечает параметр proxy_read_timeout в настройках nginx?
Как вариант для выполнения долгих задач - временно (лучше временно) выставить секунд 600 (или сколько там точно хватит) и обращаться на сайт напрямую в апач по адресу site.ru:81/administrator
выставить для чего, где вы имели в виду?
*

voland

  • Профи
  • 9513
  • 422
  • Эта строка съедает место на вашем мониторе
спасибоза это отвечает параметр proxy_read_timeout в настройках nginx?
Не помню, почитайте доки

выставить для чего, где вы имели в виду?
php_value max_execution_time - вот этот параметр, чтоб скрипт отработал
*

dmitry_stas

  • Профи
  • 10040
  • 953
server {
...
    proxy_connect_timeout       600;
    proxy_send_timeout          600;
    proxy_read_timeout          600;
    send_timeout                600;
...
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
server {
...
    proxy_connect_timeout       600;
    proxy_send_timeout          600;
    proxy_read_timeout          600;
    send_timeout                600;
...
}

так как у вас работают одновременно 2 вебсервера - вам нужно одновременно производить настройки времени выполнения скриптов на 2-х серверах... и таким образом, чтобы они были одинаковыми.. чтобы и в апатч было, к примеру 600 сек. и в нджинкс - 600 сек..  а то выйдет именно таким образом, как написал ниже темны лорд Воланд )
---------------
PHP обрабатывается апачем, потом через нгинкс
Когда нгинкс не дожидается ответа (по дефолту 30 сек) он сам отдает 504
При это апач может дальше обрабатывать скрипт и может даже успешно его завершить если он успеет во временные рамки апача, по совету выше это 60 секунд.
-------------
а для того, можно  воспользоваться функц. ini-set() _http://php.net/manual/ru/function.ini-set.php что во время выполнения скрипта (функции.. ) изменяет глобальные значения конфиг. PHP. т.е. они будут одинаковыми для обоих серверов сразу..

вот, к примеру.. загружаете вы 2000 картинок на сервер в 1 раз..  это у вас выполняет функция upload_images()
откройте код этой функции и укажите в самом начале..
Код
 ini_set('max_execution_time', '600');
ini_set('max_execution_time', '600');
ini_set('memory_limit', '256M');
ini_set('mysql.connect_timeout', '600');
ini_set('default_socket_timeout', '600');


больше опций и о опциях можно почитать тут.. _http://php.net/manual/en/ini.list.php
Узнать о текущих настройках поможет функция ini_get_all()
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
---------------
PHP обрабатывается апачем, потом через нгинкс
Когда нгинкс не дожидается ответа (по дефолту 30 сек) он сам отдает 504
При это апач может дальше обрабатывать скрипт и может даже успешно его завершить если он успеет во временные рамки апача, по совету выше это 60 секунд.
-------------
а для того, можно  воспользоваться функц. ini-set() _http://php.net/manual/ru/function.ini-set.php что во время выполнения скрипта (функции.. ) изменяет глобальные значения конфиг. PHP. т.е. они будут одинаковыми для обоих серверов сразу..
Судя по сообщению Воланда php отрабатывается только апачем, я nginx ждет готовый ответ. Поэтому я как-то не понимаю как функция ini-set повлияет на таймауты nginx
Люди добрые, просветите, зачем в файле настроек nginx введены две секции настроек с разным location? location / - это фронтенд, а location ~*(administrator|comprofiler)* - админка? смысл в более грамотном перераспределении ресурсов сервера?
Второй вопрос - правильно я понимаю, что и во фронте, и в админке у меня работает всегда связка apache+nginx?
« Последнее редактирование: 12.01.2016, 16:58:45 от borro »
*

voland

  • Профи
  • 9513
  • 422
  • Эта строка съедает место на вашем мониторе
Есть отдача странички пользователю - нгинкс
А есть собственно выполнение скрипта - если это масштабирование картинок, оно может завершиться, а может и нет - за это апач отвечает.
Но если апач (+пхп) будет думать больше чем ждет нгинкс, то пользователь не узнает успех выполнения, а увидит 504.

Разжевано вроде уже больше некуда!
*

borro

  • Живу я здесь
  • 1281
  • 21
  • желаю вам счастья
Есть отдача странички пользователю - нгинкс
А есть собственно выполнение скрипта - если это масштабирование картинок, оно может завершиться, а может и нет - за это апач отвечает.
Но если апач (+пхп) будет думать больше чем ждет нгинкс, то пользователь не узнает успех выполнения, а увидит 504.

Разжевано вроде уже больше некуда!
Спасибо, это я уже понял. У меня немного другие вопросы были :)
*

dmitry_stas

  • Профи
  • 10040
  • 953
зачем в файле настроек nginx введены две секции настроек с разным location? location / - это фронтенд, а location ~*(administrator|comprofiler)* - админка? смысл в более грамотном перераспределении ресурсов сервера?
Второй вопрос - правильно я понимаю, что и во фронте, и в админке у меня работает всегда связка apache+nginx?
можно и так сказать. я например по /administrator/ защиту от ботов настроил, отдаю им 404. у кого как. зачем конкретно у вас - без содержимого location не скажешь

Второй вопрос - правильно я понимаю, что и во фронте, и в админке у меня работает всегда связка apache+nginx?
99% что да
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Open Server ошибка 504 Gateway Time-out

Автор Ferum1

Ответов: 4
Просмотров: 482
Последний ответ 31.08.2016, 15:36:24
от Ferum1
Open server 504 Gateway Time-out на php 7

Автор Taatshi

Ответов: 5
Просмотров: 1810
Последний ответ 05.04.2016, 18:19:19
от AlekVolsk
Сайт начал выдавать ошибку 502 время от времени, хотя я в последнее время новых плагинов и модулей н

Автор svetlovanton

Ответов: 6
Просмотров: 1602
Последний ответ 21.12.2012, 23:21:28
от svetlovanton