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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте!

На админской части сайта после запуска в ней по всей видимости тяжелой задачи по подхватыванию и распознаванию 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

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Ничего не надо делать.
ну ошибка, дальше работаем.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Ничего не надо делать.
ну ошибка, дальше работаем.
так мне надо в админку, а она открывается этой ошибкой :)
*

wishlight

  • Живу я здесь
  • 4980
  • 293 / 1
  • от 150 руб быстрый хостинг без блокировок
Логи nginx посмотрите. И нагрузку на VPS в это время.
*

borro

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

dmitry_stas

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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
в другом браузере пускает в админку?
похоже я словил кэш :) сбросил кэш хрома и заработало, полдня ушло... :) все, зарубил себе на носу

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

dmitry_stas

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

Yura Vakulenko

  • Захожу иногда
  • 238
  • 6 / 1
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

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

borro

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

voland

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

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

borro

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

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
спасибоза это отвечает параметр proxy_read_timeout в настройках nginx?
Не помню, почитайте доки

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

dmitry_stas

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

Yura Vakulenko

  • Захожу иногда
  • 238
  • 6 / 1
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

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
---------------
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

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

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

borro

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

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

dmitry_stas

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

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

Ошибка 502 Bed Gateway

Автор lohudra

Ответов: 0
Просмотров: 1241
Последний ответ 10.06.2022, 11:49:22
от lohudra
Open Server ошибка 504 Gateway Time-out

Автор Ferum1

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

Автор Taatshi

Ответов: 5
Просмотров: 6807
Последний ответ 05.04.2016, 18:19:19
от AlekVolsk