FastCGI no lighttpd nenhum dado recebido

2

Eu tenho um script FastCGI simples:

public static void main (String args[]) {
        int count = 0;
        while(new FCGIInterface().FCGIaccept()>= 0) {
            count ++;
            System.out.println("Content-type: text/html\n\n");
            System.out.println("<html>");
            System.out.println(
                    "<head><TITLE>FastCGI-Hello Java stdio</TITLE></head>");
            System.out.println("<body>");
            System.out.println("<H3>FastCGI Hello Java stdio</H3>");
            System.out.println("request number " + count +
                    " running on host "
                    + System.getProperty("SERVER_NAME"));
            System.out.println("</body>");
            System.out.println("</html>");
        }
    }

Configurar com o lighttpd como:

server.modules   += ( "mod_fastcgi" )
fastcgi.debug = 1    
fastcgi.server = ( "/cgi" =>
 ( "fastcgi" =>
   ("port" => 8888,
    "host" => "127.0.0.1",
    "bin-path" => "/var/www/tiny.fcgi",
    "min-procs" => 1,
    "max-procs" => 1,
    "check-local" => "disable" 
 ))
)

No log:

2012-11-24 04:35:04: (mod_fastcgi.c.1367) --- fastcgi spawning local 
    proc: /var/www/tiny.fcgi 
    port: 54321 
    socket  
    max-procs: 1 
2012-11-24 04:35:04: (mod_fastcgi.c.1391) --- fastcgi spawning 
    port: 54321 
    socket  
    current: 0 / 1 
2012-11-24 04:35:39: (mod_fastcgi.c.3061) got proc: pid: 0 socket: tcp:127.0.0.1:54321 load: 1 

O problema é que não há dados sendo enviados do servidor para o navegador. Estou faltando alguma coisa aqui?

    
por Michael Sh 24.11.2012 / 05:10

2 respostas

1

Eu acho que o devkit Java FastCGI diretamente do fastcgi.com tem alguns bugs. Ele foi modificado pela última vez no ano 2000. Verifique minha resposta aqui , a resposta tem um patch que eu precisava aplicar, por a interface FastCGI para trabalhar por mais de uma solicitação (é estranho como você nem recebe uma solicitação). Se o patch não funcionar para você no Nginx, a interface provavelmente terá mais bugs. Considere experimentar o Apache 2.4+. Você poderia usar o Wireshark para comparar a comunicação FastCGI e encontrar o outro bug, ou você poderia simplesmente usar o Apache 2.4 +.

    
por 24.02.2013 / 17:21
0

Tente usar o OutputStream FCGIInterface.request.outStream em vez de System.out.

Embora os docs afirmem que ele configuraria System.out para apontar para o fluxo FastCGI, isso não acontece. Provavelmente ninguém realmente usou isso, pode ter mais bugs:)

    
por 13.12.2012 / 11:02