502 Bad Gateway - nginx. не помогает увеличение proxy buffers >

MAXTEXAHN nginx-forum на nginx.us
Вс Фев 6 21:18:44 MSK 2011


Здравствуйте! Помогите пожалуйста
решить проблемку.
после переезда не сольких сайтов на
новый сервер, на одном из сайтов, на
торрент-трекере, движок: TB Dev SZ Edition
возникла проблема: при входе на
определенную страницу сайта (в раздачу)
если ты залогинен. у не которых юзеров,
в частности и у меня, вылетает ошибка
[b]502 Bad Gateway[/b].
на сервере FreeBSD 8.0-RELEASE (GENERIC) стоят:
nginx (frontend) 0.7.67 + apache (backend) 2.2.13 + mod_php 5.2.14

[i]раньше когда стоял старый apache ~1.3 без
nginx проблем не было.[/i] 

путем поисков решения этой проблемы
ковыряния в гугле, выяснилось что она
возможно возникает:
- из за php и корявого кода)
- из за порта backend сервера
- из за размера буфера проксируемого
сервера frontend сервера
и даже такие нелепые предположения
- из за rpaf_module (apache) (возникало бы тогда у
всех)
- из за отсутствия HTTP referer в заголовках
от клиента

далее, проработав практический каждый
вариант:
стало понятно что проблема в nginx или в
coocies клиента или в движке сайта который
дает такие coocies клиенту, тут уже кому
как) помоему так проблема в nginx а
конкретно в том что куки слишком
большие и nginx их не принимает О_о как-то
так, ага.

[b][u]логи:[/u][/b]
[b]nginx_error.log[/b]
[code]2011/02/06 20:46:52 [error] 3487#0: *25929102 upstream sent too
big header while reading response header from upstream, client:
10.100.0.14, server: torrents.angarsk-home.net, request: "GET
/details.php?id=27118 HTTP/1.1", upstream:
"http://193.227.98.20:88/details.php?id=27118", host:
"torrents.angarsk-home.net", referrer:
"http://torrents.angarsk-home.net/browse.php"[/code]

[b]nginx_access.log[/b]
[code]10.100.0.14 - - [06/Feb/2011:20:46:52 +0800] "GET
/details.php?id=27118 HTTP/1.1" 502 173
"http://torrents.angarsk-home.net/browse.php" "Opera/9.80 (Windows NT
6.1; U; ru) Presto/2.7.62 Version/11.00"[/code]

[b]apache_error.log[/b]
[i]ошибка в логах отсутствует.[/i]

[b]apache_acces.log[/b]
[code]10.100.0.14 - - [06/Feb/2011:20:46:52 +0800] "GET
/details.php?id=27118 HTTP/1.0" 200 55830[/code]

[b][u]сами куки:[/u][/b]
[code]
a%3A122%3A%7Bi%3A10133%3Bi%3A1296626152%3Bi%3A21350%3Bi%3A1296626155%3Bi%3A33422%3Bi%3A1296627774%3Bi%3A35642%3Bi%3A1296627780%3Bi%3A35632%3Bi%3A1296627785%3Bi%3A35633%3Bi%3A1296627795%3Bi%3A35691%3Bi%3A1296736151%3Bi%3A35683%3Bi%3A1296711241%3Bi%3A35564%3Bi%3A1296672785%3Bi%3A28409%3Bi%3A1296711238%3Bi%3A35674%3Bi%3A1296664271%3Bi%3A35677%3Bi%3A1296664275%3Bi%3A35665%3Bi%3A1296664280%3Bi%3A35067%3Bi%3A1296664283%3Bi%3A24340%3Bi%3A1296664287%3Bi%3A35673%3Bi%3A1296665565%3Bi%3A33725%3Bi%3A1296711233%3Bi%3A29122%3Bi%3A1296711212%3Bi%3A35710%3Bi%3A1296711208%3Bi%3A35520%3Bi%3A1296711209%3Bi%3A35709%3Bi%3A1296711210%3Bi%3A35708%3Bi%3A1296711210%3Bi%3A35139%3Bi%3A1296711211%3Bi%3A35706%3Bi%3A1296711213%3Bi%3A35705%3Bi%3A1296711214%3Bi%3A35703%3Bi%3A1296711215%3Bi%3A35702%3Bi%3A1296711217%3Bi%3A35704%3Bi%3A1296775863%3Bi%3A24353%3Bi%3A1296711221%3Bi%3A35696%3Bi%3A1296711222%3Bi%3A35693%3Bi%3A1296711222%3Bi%3A35697%3Bi%3A1296711224%3Bi%3A35700%3Bi%3A1296775871%3Bi%3A35584%3Bi%3A1296711226%3Bi%3A35686%3Bi%3A1296711227%3Bi%3A35699%3Bi%3A1296711229%3Bi%3A35698%3Bi%3A1296711229%3Bi%3A35682%3Bi%3A1296711231%3Bi%3A35685%3Bi%3A1296775873%3Bi%3A35695%3Bi%3A1296711234%3Bi%3A35688%3Bi%3A1296775876%3Bi%3A35689%3Bi%3A1296711238%3Bi%3A35404%3Bi%3A1296711240%3Bi%3A35662%3Bi%3A1296711240%3Bi%3A35676%3Bi%3A1296711242%3Bi%3A35427%3Bi%3A1296717652%3Bi%3A35715%3Bi%3A1296721665%3Bi%3A35714%3Bi%3A1296721819%3Bi%3A35717%3Bi%3A1296721948%3Bi%3A35745%3Bi%3A1296745713%3Bi%3A35752%3Bi%3A1296773686%3Bi%3A35754%3Bi%3A1296757186%3Bi%3A35743%3Bi%3A1296926390%3Bi%3A32007%3Bi%3A1296834937%3Bi%3A21869%3Bi%3A1296773115%3Bi%3A35755%3Bi%3A1296926181%3Bi%3A35760%3Bi%3A1296773626%3Bi%3A35758%3Bi%3A1296866374%3Bi%3A35759%3Bi%3A1296773647%3Bi%3A35756%3Bi%3A1296773672%3Bi%3A35730%3Bi%3A1296773706%3Bi%3A35542%3Bi%3A1296773729%3Bi%3A35741%3Bi%3A1296926392%3Bi%3A35728%3Bi%3A1296926393%3Bi%3A35736%3Bi%3A1296926392%3Bi%3A35727%3Bi%3A1296775859%3Bi%3A35721%3Bi%3A1296775867%3Bi%3A35679%3Bi%3A1296776021%3Bi%3A35669%3Bi%3A1296776023%3Bi%3A35664%3Bi%3A1296776024%3Bi%3A35656%3Bi%3A1296776026%3Bi%3A35655%3Bi%3A1296776027%3Bi%3A35654%3Bi%3A1296776028%3Bi%3A35635%3Bi%3A1296776031%3Bi%3A35519%3Bi%3A1296776033%3Bi%3A35627%3Bi%3A1296776033%3Bi%3A35626%3Bi%3A1296776034%3Bi%3A35625%3Bi%3A1296776172%3Bi%3A35607%3Bi%3A1296776173%3Bi%3A35614%3Bi%3A1296776175%3Bi%3A35593%3Bi%3A1296776176%3Bi%3A35598%3Bi%3A1296776178%3Bi%3A35595%3Bi%3A1296776179%3Bi%3A35561%3Bi%3A1296776182%3Bi%3A35554%3Bi%3A1296776185%3Bi%3A35531%3Bi%3A1296776188%3Bi%3A35530%3Bi%3A1296776189%3Bi%3A35526%3Bi%3A1296776190%3Bi%3A35524%3Bi%3A1296776190%3Bi%3A35523%3Bi%3A1296776192%3Bi%3A35518%3Bi%3A1296776193%3Bi%3A35517%3Bi%3A1296776194%3Bi%3A35497%3Bi%3A1296776196%3Bi%3A35496%3Bi%3A1296776197%3Bi%3A35483%3Bi%3A1296776199%3Bi%3A35468%3Bi%3A1296776494%3Bi%3A35470%3Bi%3A1296776495%3Bi%3A35464%3Bi%3A1296776496%3Bi%3A35449%3Bi%3A1296776500%3Bi%3A35448%3Bi%3A1296776502%3Bi%3A35413%3Bi%3A1296776505%3Bi%3A35383%3Bi%3A1296776507%3Bi%3A35356%3Bi%3A1296776511%3Bi%3A35757%3Bi%3A1296778754%3Bi%3A32139%3Bi%3A1296778758%3Bi%3A35836%3Bi%3A1296836347%3Bi%3A35834%3Bi%3A1296836351%3Bi%3A35807%3Bi%3A1296836356%3Bi%3A27580%3Bi%3A1296837776%3Bi%3A35821%3Bi%3A1296837783%3Bi%3A35832%3Bi%3A1296837864%3Bi%3A35882%3Bi%3A1296926179%3Bi%3A35870%3Bi%3A1296926206%3Bi%3A35781%3Bi%3A1296926180%3Bi%3A35742%3Bi%3A1296926391%3Bi%3A35899%3Bi%3A1296929518%3Bi%3A35898%3Bi%3A1296929802%3Bi%3A35893%3Bi%3A1296929807%3Bi%3A35894%3Bi%3A1296929811%3Bi%3A35889%3Bi%3A1296929817%3Bi%3A27118%3Bi%3A1296943600%3Bi%3A35963%3Bi%3A1296989026%3B%7D
[/code]

[b]конфигурации сервера:[/b]
конфиги apache думаю не стоит показывать...
при входе на порт апача без участия nginx
502 ошибка отсутствует. да и нет там не
чего особенного такого)

[u]nginx.conf[/u]:
[code]
user  www www;
worker_processes  8;

worker_rlimit_nofile 4096;

error_log  logs/error.log;

pid     /var/run/nginx.pid;

events {
    worker_connections  1024;
    use kqueue;
}


http {
    include       /usr/local/etc/apache22/mime.types;
    default_type  application/octet-stream;

    server_tokens off;

    recursive_error_pages    on;

    ignore_invalid_headers   on;

    format  main  '$remote_addr - $remote_user [$time_local] "$request"
'
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;

    client_header_timeout  30;
    client_body_timeout    30;
    send_timeout           30;
    keepalive_timeout      65;

    client_header_buffer_size 128k;
    large_client_header_buffers 16 128k;

    gzip  on;
    gzip_static  on;
    gzip_types  text/plain text/xml application/x-javascript text/css
application/xhtml+xml application/xml;

server {
    listen   80;
    server_name _;

    location / {
        deny all;
    }
}

###############
#include /usr/local/etc/nginx/alias.conf;
###############

include /usr/local/etc/nginx/torrents.angarsk-home.net.conf;
include /usr/local/etc/nginx/***********.net.conf;
include /usr/local/etc/nginx/***********.net.conf;
include /usr/local/etc/nginx/***********.net.conf;
..........
и т.д.
[/code]

[u]torrents.angarsk-home.net.conf[/u]:
[code]
server {
    listen   80;
    server_name torrents.angarsk-home.net;

    access_log /var/www/vhost/torrents/nginx_access.log;
    error_log /var/www/vhost/torrents/nginx_error.log;

    location / {
        allow 192.168.0.0/16;
        allow 10.0.0.0/8;
        ..... и т.д.
        deny all;
                location
~*^.+\.(jpg|jpeg|gif|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
                        root /var/www/vhost/torrents/;
                        access_log off;
                }
        proxy_pass  http://torrents.angarsk-home.net:88;
        include     /usr/local/etc/nginx/proxy.conf;
    }

    location ~ /\.ht {
        deny  all;
    }
}
[/code]

[u]proxy.conf[/u]:
[code]
proxy_redirect              off;
proxy_set_header            Host $host;
proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size        10m;
client_body_buffer_size     128k;
proxy_connect_timeout       90;
proxy_send_timeout          90;
proxy_read_timeout          90;
reset_timedout_connection   off;
proxy_buffers               16 128k;
proxy_buffer_size           128k;
proxy_header_buffer_size    128k;
proxy_busy_buffers_size     128k;
proxy_temp_file_write_size  128k
[/code]

конечно же значения такие как:
[code]
...
client_header_buffer_size 128k;
large_client_header_buffers 16 128k;
...
proxy_buffers               16 128k;
proxy_buffer_size           128k;
proxy_header_buffer_size    128k;
proxy_busy_buffers_size     128k;
proxy_temp_file_write_size  128k
...
[/code]

были раньше на много меньше... но я
увеличивал, увеличивал, увеличивал [i]и
кстати не которым юзерам это помогло[/i],
и увеличивал...
имеет ли смысл дальше увеличивать и на
сколько? может быть ([i]смотря на куки
выше[/i]) проблема все таки в движке? а
старому апачу просто было наплевать на
coocies и HTTP заголовки?!

скажите/подскажите пожалуйста что
необходимо сделать чтоб проблема
отпала, на сколько ещё можно увеличить
эти выше упомянутые директивы nginx?!

Спасибо огромное за ранее)))

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,172624,172624#msg-172624




Подробная информация о списке рассылки nginx-ru