HTTP/0.9 200 OK

Igor Sysoev igor на sysoev.ru
Чт Окт 21 12:27:53 MSD 2010


On Thu, Oct 21, 2010 at 11:54:38AM +0400, Vladimir Rusinov wrote:

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

nginx выдать именно эту строку не может, потому что "HTTP/0.9" - это ответ
без статуса и заговка вообще. Скорее всего, это интерпретация некого
необычного ответа самим firebug'ом. Возможно, это просто закрытое соединение.

> Сервер достаточно нагруженый, запрос делается из флешового приложения.
> 
> # 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 именно так.

Честно говоря, смотреть на этот конфиг мне мучительно больно.


-- 
Игорь Сысоев
http://sysoev.ru



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