一. varnish 
     
 
      1.安装pcre库,兼容正则表达式 
     
 
      # tar -zxvf pcre-8.10.tar.gz 
     
 
      # cd pcre-8.10 
     
 
      # ./configure --prefix=/usr/local/pcre 
     
 
      # make && make install 
     
 
      2.配置安装varnish 
     
 
      # tar -zxvf varnish-3.0.2.tar.gz 
     
 
      # cd varnish-3.0.2 
     
 
      # export PKG_CONFIG_PATH=/usr/local/pcre/lib/pkgconfig/ 
     
 
      # ./configure --prefix=/usr/local/varnish 
     
 
      # make && make install 
     
 
      3.修改varnish配置文件 
     
 
      /usr/local/varnish/etc/varnish/default 
      .vcl 
     
 
      # mv default.vcl default.vcl.bak 
     
 
      # vi cq.vcl 
     
 
      backend cqserver { 
     
 
      .host =  
      "127.0.0.1" 
      ; 
     
 
      .port =  
      "8087" 
      ; 
     
 
      .connect_timeout = 20s; 
     
 
      } 
     
 
      acl purge { 
     
 
      "localhost" 
      ; 
     
 
      "127.0.0.1" 
      ; 
     
 
      "192.168.1.0" 
      /24 
      ; 
     
 
      } 
     
 
      sub vcl_recv { 
     
 
      if 
       (req.request ==  
      "PURGE" 
      ) { 
     
 
      if 
       (!client.ip ~ purge) { 
     
 
      error 405  
      "Not allowed." 
      ; 
     
 
      } 
     
 
      return 
       (lookup); 
     
 
      } 
     
 
      if 
       (req.http.host ~  
      "^www.baidu.com" 
      ) { 
     
 
      set 
       req.backend = cqserver; 
     
 
      if 
       (req.request !=  
      "GET" 
       && req.request !=  
      "HEAD" 
      ) { 
     
 
      return 
       (pipe); 
     
 
      } 
     
 
      else 
      { 
     
 
      return 
       (lookup); 
     
 
      } 
     
 
      } 
     
 
      else 
       { 
     
 
      error 404  
      "caoqing Cache Server" 
      ; 
     
 
      return 
       (lookup); 
     
 
      } 
     
 
      } 
     
 
      sub vcl_hit { 
     
 
      if 
       (req.request ==  
      "PURGE" 
      ) { 
     
 
      set 
       obj.ttl = 0s; 
     
 
      error 200  
      "Purged." 
      ; 
     
 
      } 
     
 
      } 
     
 
      sub vcl_miss { 
     
 
      if 
       (req.request ==  
      "PURGE" 
      ) { 
     
 
      error 404  
      "Not in cache." 
      ; 
     
 
      } 
     
 
      } 
     
 
      (1)Varnish通过反向代理请求后端IP为127.0.0.1,端口为8087的web服务器,即nginx服务器监听端口; 
     
 
      (2)Varnish允许localhost、127.0.0.1、192.168.1.*三个来源IP通过PURGE方法清除缓存; 
     
 
      (3)Varnish对域名为www.baidu.com的请求进行处理,非www.baidu.com域名的请求则返回 
      "caoqing Cache Server" 
      ; 
     
 
      (4)Varnish对HTTP协议中的GET、HEAD请求进行缓存,对POST请求透过,让其直接访问后端Web服务器。 
     
 
      4.启动varnish 
     
 
      # cd /usr/local/varnish/sbin/ 
     
 
      # ./varnishd -f /usr/local/varnish/etc/varnish/cq.vcl -s file,/var/varnish_cache,1G -T 127.0.0.1:2000 -a 0.0.0.0:80 
     

         
     
 
      二. nginx 
     
 
      1.安装nginx 
     
 
      # rpm -ivh zlib-devel-1.2.3-4.el5.i386.rpm 
     
 
      # tar zxvf nginx-1.4.1.tar.gz 
     
 
      # cd nginx-1.4.1 
     
 
      # ./configure --prefix=/usr/local/nginx --with-openssl=/usr/lib --with-pcre=/root/tool/pcre-8.10 --with-http_stub_status_module 
     
 
      # make && make install 
     
 
      2.启动nginx 
     
 
      # cd /usr/local/nginx/sbin 
     
 
      # ./nginx 
     
 
      3.修改ngnix配置文件 
     
 
      测试配置文件 
      /usr/local/nginx/sbin/ 
      . 
      /nginx 
       -t 
     
 
      # cd /usr/local/nginx/conf 
     
 
      # vi nginx.conf 
     
 
      #使用的用户和组 
     
 
      user  root root; 
     
 
      #制定工作衍生进程数(一般为CPU总核数两倍) 
     
 
      worker_processes  8; 
     
 
      #制定文件描述符数量 
     
 
      worker_rlimit_nofile 51200; 
     
 
      #指定错误日志存放路径 
     
 
      error_log  logs 
      /error 
      .log 
     
 
      #指定pid存放路径 
     
 
      pid        logs 
      /nginx 
      .pid; 
     
 
      event 
     
 
      {    
     
 
      #使用网络I/O模型 
     
 
            
      use epoll; 
     
 
      #允许的连接数 
     
 
            
      worker_connections  65535; 
     
 
      } 
     

         
     
 
      http { 
     
 
      #访问日志存放路径 
     
 
           
      access_log logs 
      /access 
      .log; 
     
 
      #开启gzip压缩 
     
 
           
      gzip             
       on; 
     
 
           
      gzip_min_length  1000; 
     
 
           
      gzip_proxied     expired no-cache no-store private auth; 
     
 
           
      gzip_types       text 
      /plain 
       text 
      /css 
       text 
      /xml 
       text 
      /javascript 
       application 
      /x-javascript 
       application 
      /xml 
       application 
      /rss 
      +xml application 
      /xhtml 
      +xml application 
      /atom_xml 
      ; 
     
 
           
      gzip_disable  
      "MSIE [1-6].(?!.*SV1)" 
      ; 
     
 
      #限定PHP-CGI的连接、发送和读取的时间为300s 
     
 
           
      fastcgi_connect_timeout 300s; 
     
 
           
      fastcgi_send_timeout 300s; 
     
 
           
      fastcgi_read_timeout 300s; 
     
 
      #虚拟主机配置 
     
 
      server { 
     
 
      #监听端口 
     
 
              
      listen 8087; 
     
 
      #主机名称 
     
 
              
      server_name 127.0.0.1; 
     
 
      #google提供的DNS服务 
     
 
              
      resolver 8.8.8.8 
     
 
              
      location / { 
     
 
      #nginx作为HTTP代理服务器 
     
 
                   
      proxy_pass http: 
      // 
      $http_host$request_uri; 
     
 
                   
      proxy_set_header Accept-Encoding  
      '' 
      ; 
     
 
                   
      proxy_redirect          off; 
     
 
              
      } 
     
 
      } 
     
 
      } 
     

         
     
 
      三. 排错优化 
     
 
      1)修改环境变量 
     
 
      vi 
       ~/.bashrc 
     
 
      PATH=$PATH: 
      /usr/local/nginx/sbin 
      : 
      /usr/local/varnish/sbin 
      : 
      /usr/local/varnish/bin 
     
 
      export 
       PATH 
     
 
      2)nginx启动与关闭 
     
 
      参数: 
     
 
      - 
      v 
      :查看版本 
     
 
      -V:查看配置模块 
     
 
      -t:查看配置文件是否正确 
     
 
      -c:制定其他配置文件 
     
 
      pkill -9 nginx 
     
 
      3)varnish启动与关闭 
     
 
      参数: 
     
 
      -u:以什么用户运行 
     
 
      -g:以什么组运行 
     
 
      -f:varnish配置文件 
     
 
      -a:绑定IP和端口 
     
 
      -s:varnish缓存位置和大小 
     
 
      -w:最小,最大线程和超时时间 
     
 
      -T:varnish管理端口,主要用来清除缓存 
     
 
      pkill varnishd 
     
 
      varnish服务动态加载配置文件 
     
 
      #varnishadm -T 127.0.0.1:2000 
     
 
      vcl.load vcl-name_vcl  
      "配置文件路径" 
       # vcl-name 这里可以任意取名 
     
 
      vcl.use vcl-name 
     
 
      vcl.show vcl-name  
      #显示vcl-name配置文件内容 
     
 
      # varnishncsa -w /usr/local/varnish/logs/varnish.log 
     
 
      将输出日志写入到制定日志文件。 
     
 
      4)修改windows客户端 
     
 
      C:\Windows\System32\drivers\etc\hosts 
     
 
      192.168.1.202 www.baidu.com