目前运行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