zoukankan      html  css  js  c++  java
  • 四十、LAMP与LNMP加速与缓存优化进阶实战上部

    实例:

     一、 所有服务器配置定时时间同步,必须通过web server上网。

       有两种方式:

      1.服务器A能进行上网,作为web server ,通过指定为ntp服务器,所有服务器访问这个服务器

      2.服务器A能进行上网,作为网关,所有服务器通过此网关连接外部互联网

       例如:B,C,D三台主机,如何添加路由条目,让其能够访问互联网,指向A主机吗?

       1)B,C,D三台主机的上网网关配置成A的内网卡地址

       2)A 上开启路由转发/etc/sysctl.conf

         net.ipv4_forward=1

        执行:sysctl -p 生效

         共享上网的防护墙命令

          iptables -P OUTPUT ACCEPT

          iptables  -P FORWARD  ACCEPT

          iptables   -P INPUT ACCEPT

          iptables  -t nat -A POSTROUTING -s  172.168.1.0/24  -o eth0 -j SNAT  --to-source 10.0.0.7(内网地址)

    二、两台web服务器如何检测nfs挂掉了,又如何切换到备份nfs机器上,实时检测nfs状态,并且实现自动挂在到备份机器上

           对于nfs机器切换挂在到备份服务器,目前是采用手工挂载;可以用监控软件(zabbix agios)进行服务状态的监控。

    主内容:

    php缓存加速器:

             前面主要是LAMP和LNMP的基础搭建,显然在企业工作中不够的,在大的并发的情况下,是不足以支撑服务进行工作的,所以要进行优化

             无论是LAMP或者LNMP进行优化,都是优化php.ini文件,当然,在nginx上,也许还会多一个文件php-fpm文件

           结构如下:

      

             1)无论是apache、nginx 在调用php程序的时候,都需要进行编译解析,这就需要花费一定的时间,对于高并发而言,在性能上就大打折扣

             2)如果动态数据还需要调用数据库的话,不断往后传递的过程,也是需要时间的,所以在性能上也是有差距的

             优化1)其实是称之为php缓存加速器,将解析结果缓存起来,称之为(操作码缓存),apache或者nginx服务是在编译后源代码称为opcode,缓存这个opcode。优化后一般并发是800左右。

    三、环境准备

    系统 命令 结果
    操作系统 cat /etc/redhat-release CentOS release 6.5 (Final)
    位数 uname -m x86_64
    apache /application/apache/bin/apachectl -V Server version: Apache/2.2.27 (Unix)
    nginx /application/nginx/sbin/nginx -v nginx version: nginx/1.6.2
    mysql mysql -uroot -p Server version: 5.5.32/Server version: 5.1.72
    php /application/php/bin/php -v PHP 5.3.27
         
         
         
         
         
         
         
         

         yum grouplist  可以查看yum安装的系统

         /application/php/bin/php -i| grep  /configure  查看php编译安装的参数

         grep CONFIGURE_LINE /application/mysql/bin/mysqlbug  查看mysql的编译安装参数

        cat /application/apache/build/config.nice   查看apche编译安装的参数

        /application/nginx/sbin/nginx -V  查看nginx编译安装的参数

     四、配置php加速器

        首先要解决perl的环境问题,不然可能会带来意想不到的安装错误,因为加速器好多是用php写的,或者和perl是相关的,所以提前需要配置

      1)配置环境变量LC_ALL

         echo 'export LC_ALL=C'>> /etc/profile

         source /etc/profile

       eaccelerator 是一个自由的开放源代码的php加速,优化和动态内容缓存的扩展模块。

     1.  自有软件包解压   unzip nginx-php-ext-soft.zip
     2.  将内部软件按放到当前目录下:mv nginx-php-ext-soft/* .
     3.  解压软件 tar jxf eaccelerator-0.9.6.tar.bz2
     4.  cd eaccelerator-0.9.6
     5.  /application/php/bin/phpize ( phpize是扩展php的外挂模块,在执行前都要编译这个东西)
     6 . /configure --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config
     7.  make
     8   make install

    apache
     9.  ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

    nginx

     10.   ll /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

     eaccelerator.so   表示安装成功

    加速器有多种,eaccelerator 模块 加速器  优点:缓存、加速、优化  ;缺点:不常用,除此之外,xcache是一个又快又稳的php opcode缓存器。与同类哦【code缓存器相比更胜一筹

      1.  ls xcache*
      2.  tar jxf xcache-1.3.2.tar.bz2
      3.  cd xcache-1.3.2
      4 .  /application/php/bin/phpize
      5. ./configure --enable-xcache   --with-php-config=/application/php/bin/php-config
      6.  make
      7.  make install

    nginx
      8.  ll /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

    apache

      9. ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

    php加速 加速器软件种类:xcache,eaccelerator,zend,apc

    2)php和数据库之间也要一个缓存memcached,是一个c/s架构,这里安装客户端;memcached是nosql数据库,是非关系型关系看,memcached、resin是key-value型关系;resin是防止丢失。新浪开发memcachedb,防止memcached丢失。

    1.tar xf memcache-2.2.5.tgz
    2. cd memcache-2.2.5
    3./application/php/bin/phpize
    4. ./configure --with-php-config=/application/php/bin/php-config
    5. make
    6. make install
    7. ls /application/php5.3.27/lib/phpy /extensions/no-debug-zts-20090626/

    3)PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询并获取数据。

    1. cd  /home/oldboy/tools
    2.  tar zxf PDO_MYSQL-1.0.2.tgz
    3.  cd PDO_MYSQL-1.0.2
    4.   /application/php/bin/phpize
    5.  ./configure  --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql
    6. make
    7.  make install
    8.  ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

     4)ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读写和处理超过89种基本格式的图片文件。imagickphp也要安装,一起生成省略图片的软件,imagickphp调用ImageMagick

    1.tar zxf ImageMagick.tar.gz
    2. cd ImageMagick-6.5.1-2
    3.  ./configure
    4. make
    5  yum install perl-devel -y
     6. make

      Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 24.
    BEGIN failed--compilation aborted at Makefile.PL line 24.
    make[1]: *** [PerlMagick/Makefile] Error 2   --此错误要yum install perl-devel -y

     1.  tar zxf imagick-2.3.0.tgz
     2.  /application/php/bin/phpize
     3.  cd imagick-2.3.0
     4.  /application/php/bin/phpize
     5.  ./configure --with-php-config=/application/php/bin/php-config
     6.  make
     7.  make install
     8.  ll /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

       

  • 相关阅读:
    MVC3、如何应用EntityFramework 连接MySql 数据库 Kevin
    DEV EXPRESS Summary Footer 不显示 Kevin
    装饰模式 Kevin
    Dev 控件 GridControl 控件 二次绑定数据源的问题。 Kevin
    System.InvalidOperationException 异常 Kevin
    LINQ to XML Kevin
    代理模式——代码版“吊丝的故事” Kevin
    VS2012 中的设备 面板 Kevin
    maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
    maven 学习笔记(一)eclipse+android+maven
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/11632098.html
Copyright © 2011-2022 走看看