За последние 24 часа нас посетили 22262 программиста и 1060 роботов. Сейчас ищет 771 программист ...

Почему сайт перестает работать?

Тема в разделе "Настройка веб-сервера", создана пользователем VaneS, 1 авг 2017.

Метки:
  1. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Добрый день,
    стал замечать такую проблему:
    Есть сервер apache 2, он стоит на ubuntu. На сервере есть несколько сайтов, в какое то время 1 из сайтов начинает долго грузиться и выходит 504 ошибка. Еще через некоторое время выходит ошибка 502.
    Помогает перезагрузка всего сервера, как можно решить эту проблему?
    Вот лог ошибок когда выходит ошибка 504:
    Код (Text):
    1. 2017/08/01 16:05:44 [error] 1235#0: *3567 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.1.33, server: domen.ru, request: "GET /index.php?id=416 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-domen.sock", host: "domen.ru"
    2. 2017/08/01 16:06:44 [error] 1235#0: *3490 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.1.33, server: domen.ru, request: "GET /index.php?id=416 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-domen.sock", host: "domen.ru"
    3. 2017/08/01 16:06:57 [error] 1235#0: *3567 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.1.33, server: domen.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-domen.sock", host: "domen.ru"
    А вот лог ошибок когда через некоторое время выходит ошибка 502:
    Код (Text):
    1. 2017/08/01 16:43:06 [error] 1235#0: *6285 connect() to unix:/var/run/php5-domen.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.168.1.33, server: domen.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-domen.sock:", host: "domen.ru"
    2. 2017/08/01 16:43:24 [error] 1235#0: *6346 connect() to unix:/var/run/php5-domen.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.168.1.33, server: domen.ru, request: "GET /manager/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-domen.sock:", host: "domen.ru"
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Вас не DDOS-ят случаем? По легкой так, что очередь не сразу набирается.
    --- Добавлено ---
    И да, fastcgi до пыхи...при том, что у вас apache2. У вас там голый apache2+php-fpm чтоли? Если так, то ваш сайт может валиться просто от обилия запрашиваемых ресурсов со страницы. Если на странице есть пара десятков картиночек, скриптоков да стилей, то с десяток клиентов уже могут положить сервер с такой архитектурой. А то и меньше. Да что там. На медленных запросах можно и соло его уложить.
    --- Добавлено ---
    Собсно, вопросы:
    1) Почему php-fpm, а не mod_php, коль уж apache2? Таки mod_php для апача роднее, и работает быстрее, чем php_fpm без лишних накладных расходов на межсерверное взаимодействие(да, php-fpm это таки тоже сервер);
    2) Почему apache2, коль уж php_fpm? Почему не nginx, с которым php_fpm использовать логичнее?
    3) Почему наружу торчит голый apache2, если это правда так? Почему не закрыт тем же nginx, на который заворачивалась бы статика и который бы собирал очередь на себя?

    Собсно, по-хорошему есть 2 популярные, проверенные архитектуры из свободного ПО:
    1) nginx+apache/mod_php;
    2) nginx+php_fpm;

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

    На практике же это все скорее вопрос вкусовщины. Главное - чтобы перед PHP-сервером стоял легкий быстрый реверс-прокси, не боящийся высококонкурентных запросов.
     
    #2 Fell-x27, 1 авг 2017
    Последнее редактирование: 1 авг 2017
  3. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Сервер уже был настроен и работал до меня, так что я не знаю почему он именно так настроен.

    upload_2017-8-1_17-19-15.png
    Судя по ответу сервера все таки там стоит nginx/1.8.1
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Сколько запросов в сутки? В час? Пока что основная версия - сервер тупо не справляется.
    --- Добавлено ---
    Давно вообще проблема появилась? Раньшее ее не было? Что еще на сервере работает?
     
  5. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    На сервере в общем такая система что под каждый сайт создается свой пользователь и свой демон. Раньше все работало нормально, но с неделю уже где то 1 сайт вырубается. Сайт мало посещаемый и почему падает именно он, так и не удалось понять.
    --- Добавлено ---
    Но каждый раз перезагружать весь сервер, не вариант.
    если перезагружаю php5-frm, то это проблему не решает.
    Не могу понять, куда копать
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Для начала - копать надо логи. Особенно error_log php-fpm(надеюсь, он есть). На втором месте - апач, на третьем - нжинкс.

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

    Для начала - можно просто прикрутить xdebug, и через него попробовать снять stamp - это профилировка работы. Дело затратное. Включили стампер, разок дернули сайт, выключили стампер. Результат сохраняется в текстовый файл, понятный для человека. Можно самому его изучать. Можно найти ПО, которое на его основе запилит диаграммы и автоматически анализ проведет.
     
  7. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Обратился к админам, поставили мне забикс, по его показателям, вроде все нормально.
    Авторизовался в PHPMyAdmin от пользователя под которым работает сайт, зашел в раздел "состояния", там есть график:
    [​IMG]
    Вот меня интересует график "Соединения / Процессы", судя по графику пишет что там 1 процесс и 1625 соединений, это нормальное значение?
    --- Добавлено ---
    При чем, если я начинаю нажимать F5, то на графике показывается 1 процесс и 20-35 соединений, откуда могут браться 1625? Ведь это очень большое число.
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Может это таки дудос?
     
  9. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    [​IMG]
    Как можно посмотреть атака это или нет?
    БД лежит на отдельном сервере от сайта
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Опиши подробно инфраструктуру. Еще сайты этим сервером с вебом или этим сервером субд пользуются?
     
  11. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Есть сервер 1, там лежит несколько сайтов.
    Есть сервер 2, там лежит СУБД.
    Все сайты на сервере 1 обращаются к серверу 2.
    На сервере 1 стоит nginx+php_fpm
    Каждый сайт открывается от своего пользователя.
    Вот что говорит забикс о сервере 1 "исходящий трафик"
    [​IMG]
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    это ни о чем не говорящие данные. это может быть и статика типа фильмов - сервер не сильно-то напрягается её отдавать с диска.
    по процессам можно плюс-минус понять к какой пхп-машине приходит слишком много и оценить это много как полезное или как дос
    говнокода точно нигде нет? индексы?
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Шутишь? Там за несколько секунд набегает несколько тысяч запросов к серверу.
    Разве что там на клиенте каждый символ на странице не дергается отдельным запросом.

    Автор, это либо DDOS, либо поздравляю, вы переросли сами себя и вам нужен сервер попросторнее. И вперед к светлому будущему.
     
  14. VaneS

    VaneS Активный пользователь

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    А можно ли как то посмотреть на сервере где лежит СУБД посмотреть сколько запросов делал какой пользователь?
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Для бд так же есть всякие тулзы для сбора статистики. mysql вроде и сам умеет в ее сбор, если мне память не отшибло.