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

excanoe nginx-forum на nginx.us
Чт Дек 8 14:20:09 UTC 2011


Здравствуйте уважаемые форумчане!

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

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

######################################################################

worker_processes 1;

events{
  worker_connections 1024;
}

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

######################################################################

#coding: utf-8

require "socket"
require "thread"
require "openssl"
require "erb"

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

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

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

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



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