SCGI и сжатие ответов

Andrey Repin hell-for-yahoo на umail.ru
Чт Дек 8 16:45:21 UTC 2011


Здравствуйте, Уважаемый(-ая, -ое) excanoe!

e> Столкнулся с данной ошибкой: ответы от
e> scgi сервера не сжимаются.

И как вы это определили?

curl -siIH "Accept-Encoding: deflate,gzip" http://хост/адрес_скрипта
что говорит?

e> привожу код сервера на руби и
e> конфигурацию nginx (конфигурация
e> тестовая):

e> ######################################################################

e> worker_processes 1;

e> events{
e>   worker_connections 1024;
e> }

e> http{
e>   server_tokens off;
   
e>   default_type text/plain;
  
e>   gzip on;
e>   gzip_types text/plain;
  
e>   types{
e>     text/plain js css txt;
e>   }
  
e>   server{
e>     return 404;
e>   }
  
e>   server{
e>     server_name localhost;
    
e>     scgi_buffering off;
    
e>     location / {
e>       try_files $uri @engine;
e>     }
    
e>     location @engine {
e>       include scgi_params;
e>       scgi_pass 127.0.0.1:9000;
e>     }
e>   }
e> }

e> ######################################################################

e> #coding: utf-8

e> require "socket"
e> require "thread"
e> require "openssl"
e> require "erb"

e> scgid=Socket.new(Socket::AF_INET,Socket::SOCK_STREAM,0)
e> scgid.bind(Socket.pack_sockaddr_in(9000,"127.0.0.1"))
e> scgid.listen(1)

e> loop{
e>   scgi=scgid.accept[0]
e>   Thread.new{
e>     begin
      
e>       f=File.new(Time.now.to_f.to_s+".bin","wb")
e>       while(f.syswrite scgi.sysread 4096)==4096
e>       end
e>       f.close
e>       File.unlink f.path
      
e>       scgi.syswrite "Status: 200 OK\r\nContent-Type:
e> text/plain\r\n\r\n"
      
e>       scgi.syswrite "ok"
      
e>       #header_size   =""
e>       #header_pairs  =""
e>       #while (header_size=~/:/)==nil
e>       #  header_size+=scgi.sysread 1
e>       #end
e>       #header_size=header_size.to_i
e>       #while header_pairs.size<header_size
e>       #  header_pairs+=scgi.sysread 1
e>       #end
      
e>       #env=Hash[*header_pairs.split("\0")]
      
e>       #scgi.syswrite "Status: 200 OK\r\nContent-Type:
e> text/plain\r\nContent-Length: "+env.to_s.size.to_s+"\r\n\r\n"
e>       #scgi.syswrite env.to_s

e>       scgi.close
e>     rescue=>err
e>       p err
e>     end
e>   }
e> }

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

e> _______________________________________________
e> nginx-ru mailing list
e> nginx-ru на nginx.org
e> http://mailman.nginx.org/mailman/listinfo/nginx-ru


-- 
С уважением

    Andrey Repin (hell-for-yahoo на umail.ru) четверг, 08.12.2011, <20:43>



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