我用Nginx和PHP-FPM, 以多進程fastcgi來跑PHP.
如果一樣用Nginx, 要讓fastcgi來處理Perl, 我找到的選擇有
(1)lighttp的spawn-fcgi, 最新的版本是20090923的1.6.3版, 我剛下載httpd 1.4.30來編譯, 已經沒有spawn-fcgi了, 請問lighttp丟棄了spawn-fcgi了嗎? 只能用2009年的舊版嗎? 還是用以下的方法?
(2)用nginx的ngx_http_fastcgi_module.
(3)用CPAN的fcgi+ FastCGI wrapper
請教Perl專家, 您建議用那一種? 或者有其他的建議?
我喜歡用Nginx, 但是很多人用Apache的fastcgi模組來跑, 可承受高負載嗎? 有沒有人用cherokee跑過?
spawn-fcgi 非但沒有被 lighttpd 捨棄,還被提升為獨立的專案。意即它已經可以獨當一面,而不是 lighttpd 的附屬品而已。
http://redmine.lighttpd.net/projects/spawn-fcgi
如果你喜歡用 NginX,那就搭它的 ngx_http_fastcgi_module.,別的不說,自己搭配的方案一定有經過作者自己的調校。
Simple CGI 是未來可能取代 Fast CGI 的方案,協定更簡潔,所以更快速而穩定。只是問世時間不長,現在支援它的 Web Solution 還不多。
謝謝您的回答.
關於spawn-fcgi, 我知道它成了獨立的專案, 但是已經兩年多未更新了.
我會試試用Nginx的Simple CGI先, 謝謝您的提醒, 我初步檢查一下我要用的Web Solution, 剛好更新版用Simple CGI. 不過還是得先試試.
查了google, Ruby也建議用SCGI, 用的是ruby-scgi:
ruby-scgi is a Ruby library for running Ruby on Rails (and possibly other web applications) for high-speed deployment of your applications in production. It is intended as a replacement for the ancient FastCGI code base and bring some big advantages to Rails deployment for production operations.
但也發現scgi不支援socket, 只能用port, 除非是在hosting的環境, 應該沒差別:
One thing that SCGI doesn‘t support is using UNIX Domain sockets in addition to TCP/IP sockets. This isn‘t really needed, but it is handy in a shared hosting situation where you don‘t want others connecting to your processes or if you have to request open ports. Sorry, no UNIX Domain sockets in SCGI.
domain sockets
經過一週的測試, 最終還是用了spawn-fcgi.