小生博客:http://xsboke.blog.51cto.com

    

  

 

                                             -------谢谢您的参考,如有疑问,欢迎交流

 


 

一、 Lamp工作流程

   apache2.4:lamp+xcache_第1张图片

 1. Client请求web server,请求页面为php动态页面

 2. Web server通过cgifastcgiapache模块去连接php

 3. php serverphp-fpm组件处理请求,通过php解析器,解析php语言

 4. 然后php server通过mysql协议,调取数据并且返回给web server

二、Web server连接php的方式

  1. Apache

    Apache有三种方式:CGI模式、fastCGI模式、apache模块。

  2. Nginx

    Nginx有两种方式:FastCGIproxy-pass

三、 FastCGI工作机制

   其中fastCGI的性能比CGI好,所以生产环境一般都是同fastCGI模式

   按客户端请求方式有两种:动态请求和静态请求

  •  

    • 静态请求由apache直接响应返回

    • 动态请求需要通过fastcgi协议调用phpserver并执行返回给apache,有apache返回解释执行后的结果,如果这个过程涉及对数据的操作,php还会通过mysql协议调用mysql server

四、 压力测试工具

  1. 常用压力测试工具

    abhttp_loadwebbenchsiege

  2. Ab(由apache自带的压力测试工具)


    • ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问

    • 它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginxlighthttptomcatIIS等其它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依赖包

   wKiom1j3cfvSbbJZAAA8LrAThFs858.jpg

   安装libmcrypt

   wKiom1j3cjaDkjVtAABIW7vlfxE219.jpg

   编译安装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

        注:上面的二选项的作用:处理jpegpng图片的、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配置文件

   wKioL1j3cnbgIeLHAAA25UBhen4785.jpg

   优化php-fpm程序脚本路径

   wKioL1j3cofTtrFxAABr75Lqt0M708.jpg

   拷贝php-fpm配置文件

   

   配置php-fpm文件

   wKioL1j3cqywgBW-AAApUng8sMA800.jpg

   apache2.4:lamp+xcache_第2张图片

   启动php-fpm服务并开启9000tcp端口

   

   在php server上新建虚拟主机目录用于存放php网页文件(并且创建两个测试页)

   apache2.4:lamp+xcache_第3张图片

   在mysql server上授权用于测试连接的账户,并且开启3306tcp端口

   apache2.4:lamp+xcache_第4张图片

   在apache server配置apache连接php server

   1

   apache2.4:lamp+xcache_第5张图片

   2

   apache2.4:lamp+xcache_第6张图片

   3

   

   4

   

   5

   apache2.4:lamp+xcache_第7张图片

   6

   

   7

   

  3. 测试lamp平台

   首先测试php是否能够解析

   apache2.4:lamp+xcache_第8张图片

   测试能否连接mysql

   

  4. 在php server上搭建xcache加速器

    1)  安装xcache缓存加速器

     

     如果生成xcacheconfigure时报错,如果不报错则不需要解决这个问题了

     wKioL1j3c93i_rCEAACdmEYta2Q275.jpg

    解决办法:

     

     首先yum安装m4

     

     然后yum安装autoconf

                   

     重新生成configure文件

     wKiom1j3dFWhHTi3AABREUM1D5I964.jpg

     再次进行编译安装

                   


    2)  安装完后出现此行提示代表安装成功

     wKiom1j3dIPwfuh5AACczYs4-U8074.jpg

     注释:这行参数需要记住,在php.ini配置文件中,添加xcache模块时,需要指定模块文件

     (xcache.so),而模块文件就存在此目录下

    3)  创建xcache缓存文件

     wKioL1j3dJzBC1VNAAA6cIhw4l0148.jpg

    4)  拷贝xcache后台管理程序到网站根目录,同时,也需要拷贝到apache服务器上一份

     apache2.4:lamp+xcache_第9张图片

    5)  配置php.ini文件,使php支持xcache

     apache2.4:lamp+xcache_第10张图片

     重启php-fpm服务

     

    6)  测试

     apache2.4:lamp+xcache_第11张图片

    7)  修改php.ini的时区

     

    8)  重启php-fpm并且进行验证

     

     apache2.4:lamp+xcache_第12张图片

 5. Ab压力测试工具的安装和使用

   在客户机安装,直接yum安装即可

   

   1)   ab工具的使用

   

   2)   并发连接数也受linux能同时打开的文件数限制

   apache2.4:lamp+xcache_第13张图片