Проблемы с nginx

Тема в разделе "Администрирование серверов", создана пользователем askarbin, 11 авг 2010.

Модераторы: mefish, stooper
  1. askarbin

    askarbin

    Регистр.:
    31 мар 2009
    Сообщения:
    293
    Симпатии:
    36
    Недавно начались странные проблемы с сервером. Стоит nginx как фронтенд апача + zend optimizer + eaccelerator.
    Время от времени nginx уходит в даун, я смотрю логи апача -> пусто, а в логах nginx ->
    Конфиг nginx:
    Код:
    user              nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log;
    #error_log  /var/log/nginx/error.log  notice;
    #error_log  /var/log/nginx/error.log  info;
    
    pid        /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    http {
        include	  /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        # Load config files from the /etc/nginx/conf.d directory
        include /etc/nginx/conf.d/*.conf;
    
        #
        # The default server
        #
         	server {
                    listen xxx.xxx.xxx.xxx:80;
                    server_name mysite.com www.mysite.com;
                    rewrite ^(/manager/.*)$ https://$host$1 permanent;
                    location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
                           	proxy_pass http://xxx.xxx.xxx.xxx:8080;
                           	proxy_redirect http://mysite.com:8080/ /;
                            proxy_set_header Host $host;
                           	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_set_header X-Real-IP $remote_addr;
                    }
                   	location / {
                            proxy_pass http://xxx.xxx.xxx.xxx:8080;
                           	proxy_redirect http://mysite.com:8080/ /;
                            proxy_set_header Host $host;
                            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_set_header X-Real-IP $remote_addr;
                    }
                   	location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                            root /var/www/admin/data/www/mysite.com;
                           	access_log /var/www/httpd-logs/mysite.com.access.log;
                            error_page 404 = @fallback;
                    }
                   	location @fallback {
                            proxy_pass http://xxx.xxx.xxx.xxx:8080;
                            proxy_set_header Host $host;
                            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            proxy_set_header X-Real-IP $remote_addr;
                    }
            }
            server {
            ... 
            }
            server {
            ... 
            }
    }
    
    Я погуглил, но особо ничего не нашел, что посоветуете делать и в какую сторону смотреть?
     
  2. tan_81

    tan_81 Постоялец

    Регистр.:
    18 окт 2006
    Сообщения:
    128
    Симпатии:
    30
    Версии nginx не указано, посмотрите здесь, схожая проблема, читать дальше по переписке:
    http://www.lexa.ru/nginx-ru/msg12788.html
     
  3. askarbin

    askarbin

    Регистр.:
    31 мар 2009
    Сообщения:
    293
    Симпатии:
    36
    Видел этот материал, жесткая подача, толком ничего не понял. Сейчас мониторю mysql,php,apache и nginx. Возможно, если упадет еще раз из логов что-то можно будет сказать.
     
  4. tan_81

    tan_81 Постоялец

    Регистр.:
    18 окт 2006
    Сообщения:
    128
    Симпатии:
    30
    Ну если кратко, то суть там шла о тормозах бэкенда. Возможно слишком много одновременных подключений.
     
    askarbin нравится это.
  5. dimm6

    dimm6 Создатель

    Регистр.:
    16 июл 2007
    Сообщения:
    10
    Симпатии:
    0
    Проблема не с nginx, а с апачем - он ничего не отдает nginx, отсюда и таймауты и ошибки!
     
  6. Skyscraper

    Skyscraper Постоялец

    Регистр.:
    22 янв 2010
    Сообщения:
    111
    Симпатии:
    9
    ап
    похожая ситуация, бывает выскакивает
    нашли решение что подправить?
    мож у апача клиентов увеличить или в php время подкрутить?
     
  7. mefish

    mefish Support

    Moderator
    • Супермодератор
    Регистр.:
    30 авг 2007
    Сообщения:
    915
    Симпатии:
    643
    Да все очень просто и логично.

    У вас upstream timed out - а значит есть апач+пхп, nginx что в данном случае ? правильно.. прокси сервер и не более, он жде, когда апач отработает и отдаст ему уже откомпиленные данные, а он подгрузит статику и т.д.

    НА каком порту висит апач ? ПОрт открыт ? Попробуйте обратиться к скрипту на прямую через апач, минуя прокси, т.е.:

    site.ru:8080/script.php

    И посомтрите вывод, если он будет.

    Если ошибки выскакивают крайне не постоянно, увеличиваем таймаут ожидания от апача:

    Вставлять в секцию http{

    И крутим цыфры по вкусу.

    Удачи.
     
    Sunday и andrei_k нравится это.
  8. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.022
    Симпатии:
    692
    Подниму тему т.к. не смог найти нормального и понятного решения... У меня ошибка возникает при попытке авторизации на сайте через вконтакте, началось после переезда на новый сервер.
    Сама ошибка:
    Код:
    2014/12/12 13:41:25 [error] 6369#0: *2320697 upstream timed out (110: Connection timed out) while reading response header from upstream, client: x1.x.x.x, server: site.ru, request: "GET /file.php?mod=vk&action=token&location=aHR0cDovL29oZHYucnUveHBlaGIucGhwP21gfdfgdfgvZD12a3BhcnNlcg==&code=5acb1cb5fegfdfgdfgzfca87f944 HTTP/1.1", upstream: "http://x.x.x.x:81/file.php?mod=vk&action=token&location=aHR0cDovL29oZHYuhgdfghcnUveHBgdfshghlaGIugdfgcGhwP21vZD12a3BhcnNlcg==&code=5acb1cb5ffsfdsdeca87f944", host: "site.ru", referrer: "http://site.ru/file.php?mod=vk"
    Пробовал и так открыть http://x.x.x.x:81/file.php?mod=vk&a...D12a3BhcnNlcg==&code=5acb1cb5ffsfdsdeca87f944 но либо загружает страницу 1-3 минуты, либо сообщает что token не определен или пустой, либо также выдает 504 ошибку...
     
  9. Swman

    Swman Создатель

    Заблокирован
    Регистр.:
    29 июн 2013
    Сообщения:
    23
    Симпатии:
    8
    у вас чет с проксированием, модуль rpaf или таймаутом как вышет писали нужно смотреть логи.
     
  10. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.022
    Симпатии:
    692
    на сервере два IP адреса, пробовал сделать то что описано http://www.stableit.ru/2009/11/modrpaf-debian.html но ничего не помогло :( Вернул как и было на 127.0.0.1
    Раньше была проблема с проксированием правда на другом сервере, но там ошибка была в том что у всех пользователей сервер отображал одинаковый IP, но уже не помню как ту проблему решил, но причина примерно в том же была, точнее в проксировании какой то косяк был.

    Логи какие ещё смотреть? Выше я уже написал строку ошибки из лога, больше там ничего другого не было...