Java
lighttpd 上的 FastCGI 未收到數據
我有一個簡單的 FastCGI 腳本:
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>"); } }
使用 lighttpd 設置為:
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" )) )
在日誌中:
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
問題是沒有數據從伺服器發送到瀏覽器。我在這裡錯過了什麼嗎?
我認為直接來自 fastcgi.com 的 Java FastCGI devkit 有一些錯誤。它最後一次修改是在 2000 年。在這裡查看我的答案,答案有一個我需要應用的更新檔,以便 FastCGI 界面可以處理多個請求(奇怪的是你甚至沒有通過一個請求)。如果更新檔不能讓它在 Nginx 上為你工作,那麼界面可能有更多的錯誤。考慮試用 Apache 2.4+。您可以使用 Wireshark 來比較 FastCGI 通信並找到其他錯誤,或者您可以只使用 Apache 2.4+。