作者/来源:yixinu.com
                        栏目:运维/编程
                        日期:2013-02-22 01:49:03
                nginx缓存服务器:
服务器IP::
eth0 addr:202.202.4.104 Bcast:202.202.255.255 Mask:255.255.0.0
        eth0:0   addr:202.202.2.155  Bcast:202.202.255.255  Mask:255.255.0.0
系统:CentOS release 6.2 Linux version 2.6.32-220.el6.i686
1、源码安装nginx,/usr/local/nginx ,具体步骤这里就不写了,方法多的是。。
2、nginx配置文件:
user  nobody;
worker_processes  1;
error_log  logs/error.log crit; 
pid        logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections  65535;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_one:60m inactive=1d max_size=35g;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.ga.com;
        charset utf-8;
        #access_log  logs/www.ga.com.access.log  main;
        location / {
            root   /usr/local/nginx/html;
            index  index.html index.htm;
              proxy_pass http://202.202.14.155; 
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    client_max_body_size 50m;
                    client_body_buffer_size 256k;
                    proxy_connect_timeout 30;
                    proxy_send_timeout 30;
                    proxy_read_timeout 60;
                    proxy_buffer_size 4k;
                    proxy_buffers 4 32k;
                    proxy_busy_buffers_size 64k;
                    proxy_temp_file_write_size 64k;
                    proxy_max_temp_file_size 128m;
            proxy_intercept_errors off;
                  
                    proxy_cache cache_one;
                    proxy_cache_valid  200 304 301 302 1d;
                    proxy_cache_valid  any 1d;
        }
        #error_page  404              /404.html;
        #redirect server error pages to the static page /50x.html
        error_page   500 502 503 504 404  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;
    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    #    ssl_session_timeout  5m;
    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers   on;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}LAM P服务器:
服务器IP: eth0 地址:202.202.14.155 广播:202.202.255.255 掩码:255.255.0.0
系统:Linux web.ga.com 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
1、安装apache php mysql ,安装步骤这里就不说了,这个更简单
2、安装inotify-tools-3.14
root@web:~# cd /usr/local/src/ root@web:/usr/local/src# tar -xzvf inotify-tools-3.14.tar.gz ...... root@web:/usr/local/src# cd inotify-tools-3.14/ root@web:/usr/local/src/inotify-tools-3.14# ./configure root@web:/usr/local/src/inotify-tools-3.14# make; make install # 安装完成后会生成inotifywait和inotifywatch两个指令 root@web:/usr/local/src/inotify-tools-3.14# ll /usr/local/bin/inotifywa* -rwxr-xr-x 1 root root 44972 2013-01-24 10:11 /usr/local/bin/inotifywait* -rwxr-xr-x 1 root root 45594 2013-01-24 10:11 /usr/local/bin/inotifywatch*
3、写一个更新缓存的shell,代码如下:
root@web:~# cat ~/shell/monit.sh 
#!/usr/bin/env bash
     
src1=/var/www/
src2=/var/lib/mysql/
     
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H;%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src1 $src2 
| while read files
  do
    ssh root@202.202.4.104 "rm /data/nginx/cache/* -rf"
  done这个shell表示,只要网站有后台更新操作或上传了源码文件,就删除缓存服务器里面的缓存文件,到下一次有人访问网站时,就会自动更新缓存。
4、后台执行这个shell即可。
完成。
