LNMP的搭建及PHP加速
LNMP:Nginx、MySQL、PHP、phpMyAdminweb生产环境。
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。淘宝有2次开发Nginx版本tengine地址:http://tengine.taobao.org/。
Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:
在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。
Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。
作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last. fm 描述了成功并且美妙的使用经验。
Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。-----以上摘自百度文库、
pcre提供Nginx的URL Rewrite正则表达式规则的支持,在多数正规网站服务器上是必须安装的,因为我们多数情况是需要Rewrite规则的支持的,只有少数情况下不需要Rewrite规则的时候(例如某些测试服务器等)。
pcre的在不同平台安装的时候,可能因为某些环境因素导致编译安装失败,如果必须安装而又安装不上也不必担心,在后面的安装过程中会有其他方法补救。
Ldconfig 是什么?
它是一个程序,通常它位于/sbin下,供root用户使用。它的作用是将/etc/ld.so.conf列出的路径下的库文件,缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig,使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件在/usr/lib下的,也是不会被使用的,结果编译过程中报错,缺少库。所以再改动库文件一定要运行ldconfig,在任何目录下运行都可以。
优点与缺点对比:
select 和epoll效率差的原因:
select是轮询、epoll是触发式的,所以在特定的应用上效率相差会很多
Select:
1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024.
2.操作限制:通过遍历FD_SETSIZE(1024)个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍.
Poll:
1.Socket数量几乎无限制:该模式下的Socket对应的fd列表由一个数组来保存, 大小不限(默认4k).
2.操作限制:同Select.
Epoll:
1.Socket数量无限制:同Poll
2.操作无限制:基于内核提供的反射模式,有活跃Socket时, 内核访问该Socket的callback,不需要遍历轮询.但是当所有Socket都活跃的时候,这时候所有的callback都被唤醒,会导致资源的竞争.既然都是要处理所有的Socket,那么遍历是最简单最有效的实现方式.
Php于nginx是采用fastcGI结合的(服务)监听地址127.0.0.1监听端口是9000
对于lnmp首先nginx80端口来链接fastcgi自己是一个服务提供9000负责与动态程序php进行交谈,php有可能连接数据库,然后再去链接数据库mysql。
推荐阅读: