Nginx:修订间差异
JohnsonLiu1979(留言 | 贡献) |
|||
第37行: | 第37行: | ||
== 与PHP的整合 == |
== 与PHP的整合 == |
||
自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持,PHP-FPM以守护进程在后台运行。 |
|||
目前使用FastCGI+Nginx運行PHP應用時如果配置檔案設定不合理,並不是十分可靠。建議使用NAMP架構(Nginx+Apache+Mysql+PHP),即使用Nginx處理靜態請求,並將動態請求反向代理給Apache處理。 |
|||
Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 |
|||
Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。 |
|||
PHP-FPM不支持Windows平台,由于没有fastcgi进程管理器管理php-cgi.exe,因此一旦php-cgi.exe崩溃退出,前端将失去响应,这时Nginx会返回“The page you are looking for is temporarily unavailable. Please try again later.”的错误信息。 |
|||
因此在Windows上用Nginx和php-cgi.exe组合来运行PHP的方式并不可靠,稳定性有待提高。 |
|||
== 参考資料 == |
== 参考資料 == |
2013年8月10日 (六) 20:17的版本
此條目需要更新。 (2012年11月3日) |
原作者 | Igor Sysoev |
---|---|
開發者 | NGINX, Inc. |
首次发布 | 2004年10月4日 |
当前版本 | 1.4.0(2013年4月24日 | )
源代码库 | |
操作系统 | 跨平臺 |
语言 | C |
类型 | 網頁伺服器、E-mail proxy |
许可协议 | BSD-like |
网站 | www |
Nginx(发音同engine x)是一款由俄羅斯程式設計師Igor Sysoev所開發轻量级的網頁伺服器、反向代理伺服器以及电子邮件(IMAP/POP3)代理服务器。起初是供俄國大型的入口網站及搜尋引擎Rambler(俄语:Рамблер)使用。此軟體BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。
特点
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux作業系統下,nginx使用epoll事件模型,得益於此,nginx在Linux作業系統下效率相當高。同時Nginx在OpenBSD或FreeBSD作業系統上採用類似於epoll的高效事件模型kqueue。
可大量平行處理
Nginx在官方測試的結果中,能夠支援五萬個平行連接,而在實際的運作中,是可以支援二萬至四萬個平行連結。
nginx 的模块
整体采用模块化设计是nginx的一个重大特点,甚至http服务器核心功能也是一个模块。要注意的是:nginx的模块是静态的,添加和删除模块都要对nginx进行重新编译,这一点与Apache的动态模块完全不同。
与PHP的整合
自PHP-5.3.3起,PHP-FPM加入到了PHP核心,编译时加上--enable-fpm即可提供支持,PHP-FPM以守护进程在后台运行。 Nginx响应请求后,自行处理静态请求,PHP请求则经过fastcgi_pass交由PHP-FPM处理,处理完毕后返回。 Nginx和PHP-FPM的组合,是一种稳定、高效的PHP运行方式,效率要比传统的Apache和mod_php高出不少。
PHP-FPM不支持Windows平台,由于没有fastcgi进程管理器管理php-cgi.exe,因此一旦php-cgi.exe崩溃退出,前端将失去响应,这时Nginx会返回“The page you are looking for is temporarily unavailable. Please try again later.”的错误信息。 因此在Windows上用Nginx和php-cgi.exe组合来运行PHP的方式并不可靠,稳定性有待提高。