在大访问量下,Nginx性能更高,主要原因如下:
- 网络I/O模型差异(主要原因)
- Apache采用的select网络I/O模型非常低效。
- Nginx使用最新的epoll(linux 2.6内核)和kqueue(freebsd)网络I/O模型。
- Apache进程干的事情多:执行php,输出html都得干。占用的资源更多。
比较I/O模型 select和epoll:
Apache和Nginx在应用中如何选择?
- 一般访问量网站优先使用Apache,稳定可靠。
- Apache模块非常丰富,为了用它的模块选它。
- Apache的rewrite非常强大,rewrite多就选它。
- 大访问量优先使用Nginx,支持更多的并发连接。
- 处理的都是静态资源(图片 html),首选Nginx(Nginx定位于静态资源分发,反向代理,在处理静态资源更有优势)
- 需要反向代理使用Nginx。