一、 Lamp工作流程
1. Client请求web server,请求页面为php动态页面
2. Web server通过cgi、fastcgi或apache模块去连接php
3. php server的php-fpm组件处理请求,通过php解析器,解析php语言
4. 然后php server通过mysql协议,调取数据并且返回给web server
二、Web server连接php的方式
1. Apache
Apache有三种方式:CGI模式、fastCGI模式、apache模块。
2. Nginx
Nginx有两种方式:CGI、proxy-pass
三、 FastCGI工作机制
其中fastCGI的性能比CGI好,所以生产环境一般都是同fastCGI模式
按客户端请求方式有两种:动态请求和静态请求
静态请求由apache直接响应返回
动态请求需要通过fastcgi协议调用phpserver并执行返回给apache,有apache返回解释执行后的结果,如果这个过程涉及对数据的操作,php还会通过mysql协议调用mysql server
四、 压力测试工具
1. 常用压力测试工具
ab、http_load、webbench、siege
2. Ab(由apache自带的压力测试工具)
ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问
它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力
Ab使用注意事项。Linux默认只能同时打开1024个文件,所以最多只能同时处理1024个请求,这个参数由变量ulimit设置,ulimit -n可以查看当前允许的同时打开文件数,也可以直接设置值
五、Php加速器xcache
1. 缓存原理
当php server解释器,解析某个php页面后,会将解析的内容缓存在缓存文件中,当同一个php
页面被多次请求时,就不需要每次都进行解析然后再响应给apache
六、 案例:lamp+xcache
1. 案例环境
2. 搭建lamp平台
Apache和mysql的安装这里不再介绍,直接从安装php开始
首先安装php依赖包
安装libmcrypt
编译安装php
--prefix=/usr/local/php5.6:指定安装目录
--with-mysql=mysqlnd //支持mysql
--with-pdo-mysql=mysqlnd//支持pdo模块
--with-mysqli=mysqlnd//支持mysqli模块
这三个参数是实现lamp分离的重要参数
--with-openssl//支持openssl模块
--enable-fpm//支持fpm模式
--enable-sockets//启用socket支持
--enable-sysvshm//启用系统共享内存支持
--enable-mbstring//多字节字串、像我们的中文就是多字节字串
--with-freetype-dir//支持freetype、就要装freetype-devel、跟字体相关的、字体解析工具
--with-jpeg-dir
--with-png-dir
注:上面的二选项的作用:处理jpeg、png图片的、php可以动态生成jpeg图片
--with-zlib//是个压缩库、在互联网传输时用来压缩传输的
--with-libxml-dir=/usr//这个libxml是用来解析xml的、指定/usr下
--enable-xml //支持xml的
--with-mhash//支持mhash
--with-mcrypt=/usr/local/libmcrypt //libmcrypt-devel这个程序包所指定的
--with-config-file-path=/etc//指定配置文件的存放路径的
--with-config-file-scan-dir=/etc/php.d //配置文件扫描路径
--with-bz2 //支持BZip2
Copy配置文件
优化php-fpm程序脚本路径
拷贝php-fpm配置文件
配置php-fpm文件
启动php-fpm服务并开启9000tcp端口
在php server上新建虚拟主机目录用于存放php网页文件(并且创建两个测试页)
在mysql server上授权用于测试连接的账户,并且开启3306tcp端口
在apache server配置apache连接php server
1)
2)
3)
4)
5)
6)
7)
3. 测试lamp平台
首先测试php是否能够解析
测试能否连接mysql
4. 在php server上搭建xcache加速器
1) 安装xcache缓存加速器
如果生成xcache的configure时报错,如果不报错则不需要解决这个问题了
解决办法:
首先yum安装m4
然后yum安装autoconf
重新生成configure文件
再次进行编译安装
2) 安装完后出现此行提示代表安装成功
注释:这行参数需要记住,在php.ini配置文件中,添加xcache模块时,需要指定模块文件
(xcache.so),而模块文件就存在此目录下
3) 创建xcache缓存文件
4) 拷贝xcache后台管理程序到网站根目录,同时,也需要拷贝到apache服务器上一份
5) 配置php.ini文件,使php支持xcache
重启php-fpm服务
6) 测试
7) 修改php.ini的时区
8) 重启php-fpm并且进行验证
5. Ab压力测试工具的安装和使用
在客户机安装,直接yum安装即可
1) ab工具的使用
2) 并发连接数也受linux能同时打开的文件数限制
原文地址:http://xsboke.blog.51cto.com/12096269/1917575