我需要提供一个处理大量请求的PHP应用程序。 我想知道除了Apache以外还有什么实际的好处,以及替代品的优缺点是什么。
我有一些使用lighttpd和nginx的Rails应用程序的经验。 他们也是PHP的有力竞争者吗? 任何重要的设置技巧?
如何PHP加速器,可以使用这些替代服务器,这是一个好主意?
我在OpenSolaris框中。
不知道是否相关,但是稍后,我打算在此服务器前放置一个Varnish代理/caching。
我想补充一点,我绝对不打算触摸应用程序。 这是PHP闻名于世的典型混乱,基本上没有时间。
Apache是mod-php的一个很好的基础 – 并且增加了用于字节码caching的APC,而且一些variablescaching将非常有帮助,事实上,这是加速PHP脚本运行的最明显的事情(也是使用Yslow加速HTML前端,并确保数据库被优化)。
我会添加一些build议,比如避免从Apache提供图片和其他静态内容。 我有一个单独的(子)域与专用的图像服务器(我使用thttpd ,但nginx也完全合适)。 从一个完全独立的域名(或CDN)提供图像将是更好的。
NginX还具有能够充当代理的优势,它可以处理入站连接,然后将结果反馈给后端 – 这意味着Apache2 / Mod_php的后端生产者进程可以在完全本地networking速度,而不必等待networking浏览器客户端赶上。
Varnish可以执行超出Nginx可以做的额外工作,但是我不太了解它 – 可能是你可能只有一个,或者另一个,但是不太可能同时使用这两个。
nginx结合php-fpm和xcache将提供超越任何Apache解决scheme的巨大速度改进。
根据您的应用程序的不同,像memcache这样的东西也可能提供巨大的caching优势。
我的mod_php Apache服务器由于Wordpress网站而内存不足。 所以在优化Wordpress之后,我转向了Apache。 我发现mod_fastcgi比mod_fcgi更好。 将PHP移出Apache减less了Web服务器的占用空间(从每个进程38M到4M)。 我也安装了eAccelerators,发现PHP运行速度更快。 另外,如果你的页面有很多包含(CSS和JavaScript),我用Wordpress做的一个技巧就是将包含文件压缩成一个文件,这个文件至less有一个空格(但这可能更像是一个Wordpress的工件)。
所以我build议看到将PHP移出Apache(并与mod_fastcgi [php-cgi]分开的过程)有所帮助。 请注意,PHP加速器将增加PHP进程的内存需求(这也是将其移出Apache进程的另一个原因)。