目前運行Perl Web應用程序的一個非常流行的選擇似乎是在一個nginx web服務器後面代理對FastCGI守護進程或支持PSGI的web服務器(例如Starman)的請求, 。nginx和Perl:FastCGI與反向代理(PSGI/Starman)
已經有很多問題,爲什麼人會做到這一點,一般(如Why use nginx with Catalyst/Plack/Starman?) 和答案似乎在這兩種情況下應用(例如允許nginx的提供靜態內容,應用服務器容易重新啓動,負載均衡等)
但是,我特別感興趣的是使用FastCGI與反向代理方法的優缺點。看來,接龍被廣泛認爲是最快,最好的Perl PSGI應用程序/ Web服務器在那裏,我努力看不到任何優勢,使用FastCGI的。這兩種方法都似乎支持:
- UNIX域套接字藏漢作爲TCP套接字
- 叉/進程管理器樣式服務器藏漢非阻塞基於事件(例如AnyEvent)服務器。
- 信號處理/優雅重啓
- PSGI
同樣,對於任何一個選項nginx的配置非常相似。
那麼,爲什麼你會選擇一個呢?
原始客戶端IP地址在X - 轉發,對於標題和原始主機頭在X-Forwarded-傳遞傳遞主機頭,所以前兩個缺點並不重要。 – marpetr 2013-02-23 14:29:27
+1感謝您的比較。由於可以運行主進程來管理後端進程和線程,因此點3不是問題。您提出了一個有趣的觀點,關於Zope以及如何瞭解原始客戶端IP和主機名以構建有效的URL – Viet 2013-05-28 08:20:01