Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.46-1 i686 GNU/Linux
# cat /etc/debian_version
7.1
# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 3.3G 16G 18% /
udev 10M 0 10M 0% /dev
tmpfs 61M 80K 61M 1% /run
/dev/xvda1 20G 3.3G 16G 18% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 121M 0 121M 0% /run/shm
Ни с того, ни с сего внезапно перестали работать сайты.
Перезапуск демонов nginx и php-fpm ничего не дал. Отправил сервер в ребут, сайты заработали. Но ненадолго, потом опять перестали открываться. При этом nginx продолжает работать.
Итог. После каждого ребута сайты работают минут пять и потом перестают открываться.
Куда и как копать? Логи nginx не вызывают никаких подозрений. Я понимаю, что исходных данных очень мало (не всё же подряд кидать), но, если честно, я немного в ступоре.
Смотрите в конфиги виртуал хостов нгинха… На днях было такое после очередного апгрейда… Проблема в ipv6 в новых конфигах нгиннха по дефолту… Надо руками для каждого конфига прописать, чтобы слушал и на ipv4, и все будет хорошо.
Итак, проблема решена, была явно на стороне Amazon AWS.
Помогло выключение и включение инстанса (инстанс на EBS) из консоли EC2. Перезапуск инстанса из той же не помогал.
1) статические страницы открываются?
2) обращения с localhost через «wget -S ...» тоже не работают?
3) страница с <?php phpinfo(); ?> что-нибудь возвращает?
4) что в момент проблемы говорят команды «free» и «ps axwwll»?
5) предварительно проверьте настройки MySQL через mysqltuner,
6) проверьте в момент начала проблем загрузку через mytop.
1) нет, статика тоже не работает.
2) нет
$ wget -S site.com
--2013-08-21 16:03:42-- http://site.com/
Resolving site.com (site.com)… ext ip
Connecting to site.com (site.com)|ext ip|:80…
3) нет, статический контект тоже не открывается
4) Вот вывод, место есть, демоны запущены. $ free total used free shared buffers cached
Mem: 616764 145888 470876 0 7140 71056
-/+ buffers/cache: 67692 549072
Swap: 0 0 0
Мало информации.
Посмотрите логи php-fpm,
включите логи nginx, какие там ошибки,
посмотрите какие процессы находятся в состоянии D в выводе «ps axfu», какая вообще загрузка и какими процессами,
посмотрите, нет ли у вас стопки выполняющихся запросов в mysql (предположил по-умолчанию).
Навскидку, возможно это переполнение пула php-fpm вызванное заторами в скриптах (может тяжелые запросы к базам или даже ошибка базы).
Обычно такое случается когда переполняются какие нибудь сокеты на виртуалке, а они бывают на ней урезанные, ну или сосед захавал их если скажем cgroups или openvz.
Если не происходит даже подключения к nginx'у, тогда проверки такие:
1) файрволл? iptables-save
2) системные лимиты? dmesg | tail
3) подключение с данного сервера к locahhost'у тоже виснет? wget -S -O /dev/null 127.0.0.1/
4) service nginx restart не помогает?
5) если добавить в настройки nginx минимальный сервер на 81 порт, он тоже не открывается?
Залейте куда-нибудь на pastebin полные конфиги nginx'a.
Не исключено, что в них какая-нибудь мелкая очепятка.
Например, вместо лимита на 4 воркера выставлен лимит на 4 коннекта.
По-прежнему интересно взглянуть на dmesg | tail -30 и iptables-save.
В общем, поменял порт в конфиге хоста nginx на 81 — всё работает как часы, поменял обратно на 80й, перезагрузился, сайт проработал несколько минут и перестал открываться.
1) непонятно, зачем форвардинг и НАТ для 10.8.0/24.
2) conntrack маловат, но если в dmesg чисто, то пофиг.
3) т.к. других вариантов пока не видно, то попробуйте с горя заменить nginx на lighttpd. Чем черт не шутит?
4) php-fpm и mysql пока остановите, проверяйте только отдачу статики.
И ситуация осталось прежней, не открывается сайт на 80 порту.
Меняем порт на 81 и всё открывается. Файрволл чист, см. выше. В консольке амазона секьюрити группа настроена — открыты 80, 81й порты.
Как же так? Что может блочить доступ, если как выяснили на другом веб сервере то же самое.
ну точно это fastvps ии hetzner. Одно и тоже каждые 2 дня.
Тупо поставил ежеминутный крон, если (в моем случае), нагрузка по топ > 2, то service php5-fpm restart
Сервер в хетзнере, тоже сталкивался с подобной проблемой. Выловить причину не удалось. Помогал только рестарт сервера.
Проблема появлялась после обновления аккаунтов в ISP Manager. Т.е. после перезагрузки апача и нгинкса.
После обновления софта проблема вроде как исчезла.