HTTP/0.9 200 OK

Vladimir Rusinov vladimir на greenmice.info
Чт Окт 21 11:54:38 MSD 2010


Приветствую.

На одном из серверов периодически появляется проблема - иногда на запросы
(как к статике, так и к динамике) он отвечает HTTP/0.9 200 OK и пустым
телом.

Вот пример, пойманый одним из разработчиков (мне пока проблему поймать не
удалось):
[image: 09200.png]


Если картинку не видно - там скриншот из firebug, POST в
/logic?cmd=<xxx>&user_id=123<и так далее> со вполне вменяемыми заголовками
(единственная странность - Referer "http"). В ответе сервера - "HTTP/0.9 200
OK" и более ничего.

Сервер достаточно нагруженый, запрос делается из флешового приложения.

# nginx -V
nginx version: nginx/0.7.65
TLS SNI support enabled
configure arguments: --prefix=/usr --with-cc-opt=-I//usr/include
--with-ld-opt=-L//usr/lib --conf-path=/etc/nginx/nginx.conf
--http-log-path=/var/log/nginx/access_log
--error-log-path=/var/log/nginx/error_log --pid-path=/var/run/nginx.pid
--http-client-body-temp-path=/var/tmp/nginx/client
--http-proxy-temp-path=/var/tmp/nginx/proxy
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
--without-http_fastcgi_module --without-http_gzip_module
--with-http_ssl_module --with-http_perl_module
--with-http_stub_status_module --without-mail_imap_module
--without-mail_pop3_module --without-mail_smtp_module

Конфиг довольно странный, писался не мной и имеет примерно следующий вид:

server {
        listen 80;
    server_name *.road404.ru "";

        set $project "cdn";
        if ($host ~* "flowergame\.ru$") {
        set $project "flower";
<...>
        if ($project = "cdn") {
                rewrite ^/([^/]+)(.*) /static$2;

                set $project $1;
        }

        set $debug "";
        if ($host ~* "^test") {
                set $debug "1";
        }

        location = / {
                if ($project = "flower") {
                        rewrite .*      "
http://www.facebook.com/apps/application.php?id=142492545782327"
permanent;
                }
        }

        location / {
                rewrite (.*) /static$1 last;
        }

        location /static {
                root /opt/$project;
        }
        location /get_iframe {
                rewrite [^\?]*(.*) /backend/get_iframe.php$1 last;
        }

        location /logic {
                rewrite [^\?]*(.*) /backend/gateway.php$1 last;
        }

<...>
        location /backend {
                internal;

                set $partner "";
                if ($host ~* "^(test\.)?ok\.") {
                        set $partner "odnoklassniki";
                }
                if ($host ~* "^(test\.)?mm\.") {
                        set $partner "mail";
                }
                if ($host ~* "^(test\.)?vk\.") {
                        set $partner "vkontakte";
                }
                if ($host ~* "^(test\.)?fb\.") {
                        set $partner "facebook";
                }

                proxy_redirect      off;
                proxy_set_header    Partner    $partner;
                proxy_set_header        Debug   $debug;
                proxy_set_header        Secure  "";
                #proxy_set_header    Host    $host;
                #proxy_set_header    X-Real_IP       $remote_addr;

                if ($debug) {
                        rewrite /backend(.*) /$project/backend$1 break;

                        proxy_pass  http://127.0.0.1:8000;
                }
                if ($partner != "") {
                        rewrite /backend(.*) /$project/backend$1 break;

                        proxy_pass  http://backend_group;
                }
        }

Может ли такое поведение быть связано со странностью конфига. Что вообще
может заставить отвечать nginx именно так.

-- 
Vladimir Rusinov
http://greenmice.info/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20101021/0bb378ef/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 13019 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20101021/0bb378ef/attachment-0001.png>


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