Страница 1 из 1

nginx+apache22

Добавлено: 2010-05-25 12:47:35
xaker1
Последние пару дней возникла проблема с данной связкой, а именно 502 ошибка.
В логах:

Код: Выделить всё

2010/05/25 13:45:28 [crit] 99376#0: *8156 connect() to ip:8080 failed (13: Permission denied) while connecting to upstream, client: cip, server: domain.ru, request: "GET /chat_refresh.php?om=0 HTTP/1.1", upstream: "http://ip:8080/chat_refresh.php?om=0", host: "domain.ru", referrer: "http://domain.ru/talk.php"
cip - client ip, ip - server ip.

Подскажите как бороться, google молчит.

Re: nginx+apache22

Добавлено: 2010-05-25 12:51:19
hizel
*8156 connect() to ip:8080 failed (13: Permission denied) while connecting to upstream

Re: nginx+apache22

Добавлено: 2010-05-25 16:28:22
xaker1
Это я заметил, вопрос почему? Данная ошибка возникает не постоянно, а иногда. На любом из сайтов, находящихся на сервере.

Re: nginx+apache22

Добавлено: 2010-05-25 17:05:42
xaker1
Помог ребут сервера.
Подскажите куда копать, чтобы предотвратить повтор ошибки.

Re: nginx+apache22

Добавлено: 2010-05-25 17:36:57
hizel
ковыряйте фаервол, например

Re: nginx+apache22

Добавлено: 2010-05-25 17:45:19
xaker1

Код: Выделить всё

/home/admin/data/> ipfw show
00100 780172 564725027 allow ip from any to any via lo0
00900      0         0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000      0         0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
01100      0         0 deny tcp from table(1) to me dst-port 22 setup
01200      0         0 deny tcp from table(2) to me dst-port 25 setup
01300      0         0 deny tcp from table(3) to me dst-port 80,8080 setup
01400      0         0 reject log logamount 1000 tcp from any to any tcpflags syn,fin,ack,psh,rst,urg
01500      0         0 reject log logamount 1000 tcp from any to any tcpflags !syn,!fin,!ack,!psh,!rst,!urg
01600      0         0 reject log logamount 1000 tcp from any to any not established tcpflags fin
01700      0         0 deny log logamount 1000 ip from any to any not verrevpath in
01800 745203 477776118 allow tcp from any to me dst-port 80,8080 limit src-addr 10
65535 324132 105679820 allow ip from any to any
С фаерволом не работал, подскажите, какие правила лучше отредактировать.

Re: nginx+apache22

Добавлено: 2010-05-25 18:20:59
hizel
1800

Re: nginx+apache22

Добавлено: 2010-09-06 18:16:35
xaker1
Проблема начинает появляться опять... 502, 504 nginx. При этом кол-во процессов apache > 100. Помогает shutdown -r now

Фактически умирает apache. Подскажите, плз, куда копать (какие данные снять с сервера), что бы найти и устранить проблему.

Судя по логам nginx - средняя кол-во запросов во время данной проблемы, такое же как и когда работает 15-20 процессов apache (на взгляд, tail -f).

Re: nginx+apache22

Добавлено: 2010-09-06 23:27:15
stmm
Отключите в апаче KeepAlive. На бекенде он не нужен, только проблемы создает.

Re: nginx+apache22

Добавлено: 2010-09-07 9:45:41
xaker1
Вчера отключил, посмотрим что из этого получится. Есть еще идеи?

Re: nginx+apache22

Добавлено: 2010-09-07 10:21:15
ProFTP
такое может быть из-за старых cookies в браузере
(ну и если работает прокси)

http://www.google.com.ua/search?hl=ru&q ... =&gs_rfai=
http://otvety.mail.ru/question/44192000/
http://www.satnavigator.ru/forums-m-posts-q-959.html

Re: nginx+apache22

Добавлено: 2010-09-07 13:47:55
stmm
У меня еще есть одна идея. Было у меня тож самое некоторое время назад. Перерыл под инета, нашел только 2 вещи: KeepAlive в апаче или бед секторы в файловой системе.
Открючил KeepAlive - помогло, но через некоторое время один веник с рейда вылетел. Заменил - все работает без замечаний.
На всяк случай сделайте чек фс. Если все обошлось одним KeepAlive тогда хорошо.

Re: nginx+apache22

Добавлено: 2010-09-07 15:30:41
xaker1
ProFTP писал(а):такое может быть из-за старых cookies в браузере
(ну и если работает прокси)

http://www.google.com.ua/search?hl=ru&q ... =&gs_rfai=
http://otvety.mail.ru/question/44192000/
http://www.satnavigator.ru/forums-m-posts-q-959.html
Сильно сомневаюсь, сервак ложится полностью.

Re: nginx+apache22

Добавлено: 2010-09-08 21:38:12
xaker1
keepalive off не помогло.... чек фс имеете ввиду fsck -y?

Re: nginx+apache22

Добавлено: 2010-09-08 23:25:52
stmm
fsck -y -f или как то тип того.
Но если у вас рейд, тогда может не помочь. Может есть методы диагностики отдельного винта в рейде. Ну или запастись новым винтом и ждать...
Можно еще сделать скрипт для крона, который перезагружает апач, если он не отвечает, но еще не настолько повис чтобы ребутить сервер.
У меня стоял такой скрипт, Запускался раз в минуту, и выручал до того момента когда посыпался винт. Если надо могу пример скрипта выложить.

Re: nginx+apache22

Добавлено: 2010-09-09 14:27:17
xaker1
raid, он самый. Программный.

Если можно скриптик - прошу в студию.

Re: nginx+apache22

Добавлено: 2010-09-09 20:17:42
stmm
У меня стоял (ну я его не уберал и стоит) скрипт такого вида:

Код: Выделить всё

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
export PATH

CHECK_URL="http://your.domain/check.php"
APACHE_RESTART="/usr/local/etc/rc.d/apache22 restart"

RESULT_STR="`/usr/bin/fetch -o - -q -T 10 ${CHECK_URL}`"

if [ "$RESULT_STR" = "OK" ]
then
  echo OK
else
  echo Apache restart...
  $APACHE_RESTART
  echo "`/bin/date \"+%y-%m-%d %H:%M:%S\"`: apache restart" >> /var/log/check_apache.log
fi
В CHECK_URL пропишите путь к check.php на своем сервере.

Файл check.php на одном из вашех доменов должен быть вида:

Код: Выделить всё

<?echo "OK"?>
Обратите внимание что в этом файле других символов не должно быть, начинаться должен с "<?" а кончаться на "?>". Никаких пробелов и переводов строк.

ну и crontab -e

Код: Выделить всё

*/2 * * * * /path/to/check.apache.sh >/dev/null 2>/dev/null

Re: nginx+apache22

Добавлено: 2010-09-09 20:40:47
xaker1
Сенкс. Только php код правильней

Код: Выделить всё

<?php echo "OK"; ?>
Немного подправил скрипт под себя - добавил еще рестарт nginx (точнее stop; start) killall -9 php-cgi.
В общем теперь для рестарта используется конструкция: nginx stop; apache stop; sleep 5 ; killall -9 php-cgi ; apache start ; nginx start.

Надеюсь что костыль поможет.

Re: nginx+apache22

Добавлено: 2010-09-10 15:34:57
xaker1
504 ошибка опять возникла. Рестарт апача не помогает - все равно сайты не отвечают, а кол-во процессов приближается к 100+.

Помогает только перезагрузка сервера, что и настораживает.
Иногда перезапускаю apache и nginx - 40 процессов apache висит, 504 ошибку nginx выдает, перезагружаешь сервер - 50+ процессов apache и все работает.

Re: nginx+apache22

Добавлено: 2010-09-10 16:00:41
dmtr
raid, он самый. Программный.
gmirror? тогда помониторить его работу если винт помирает там будет видно как он весь райд тормозит, например

Re: nginx+apache22

Добавлено: 2010-09-10 19:00:27
stmm
:shock: У меня помогал рестарт апача. Даже когда первые разы в ручную, он рестартился несколько минут!!! Но после рестарта все работало ок.