Chinaunix首页 | 论坛 | 博客
  • 博客访问: 237580
  • 博文数量: 23
  • 博客积分: 2262
  • 博客等级: 大尉
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-26 15:59
文章分类

全部博文(23)

文章存档

2009年(3)

2008年(20)

分类: LINUX

2008-07-16 15:11:28

Nginx架设一个高效的缓存转发(二)
作/译者:吴炳锡 来源:http://coolriver.cublog.cn,wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
仿F5的工作
项目情况:
  用户上传的音乐需在播放,音乐量比较大.同时用户上传的音乐命不会重名.不用过期.
用Squid和Varnish在高负载时,会出现无响应的现象.内网流量较大.
Nginx在这点上说明:
以前用F5觉的比较牛的就是可以缓存转发,感觉功能挺牛的.没钱买F5,只好用Nginx顶一把了.nginx可以说不算一个Cache,他不存在过期的问题.
Let's Go:
假架倒是很简单,也可以和负载均衡再一台机器上.
机器的硬盘要大一点.根据数据大小来定吧.
这里只提一个方法[不推荐用这个,所以写的简单点]
利用404,405的处理方法.
定义后端的Server,按分组的概念:
  upstream music_ser{
                server 172.16.100.10:80 weight=1;
                server 172.16.100.11:80 weight=1;
}
定义一个Server:
server {
        listen 80;
        server_name music.wubx.com;
        access_log  /data/logs/music_access.log
        proxy_temp_path /data/Cache/temp;
        root /data/Cache/$host;
        location / {
                index index.php;
                error_page 404 = /fetch$uri;
        }
        location /fetch {
                internal;
                proxy_pass ;
                proxy_store on;
                proxy_store_access user:rw group:rw all:rw;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Via "nginx";
                alias /data/Cache/$host;
        }
}
完成配置nginx.conf
===================================
user  nobody;
worker_processes  1;
error_log  /data/logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream
        sendfile        on;
        keepalive_timeout  65;
upstream music_ser{
     server 172.16.100.10:80 weight=1;
     server 172.16.100.11:80 weight=1;
}
server {
        listen 80;
        server_name music.wubx.com;
        access_log  /data/logs/music_access.log
        proxy_temp_path /data/Cache/temp;
        root /data/Cache/$host;
        location / {
                index index.php;
                error_page 404 = /fetch$uri;
        }
        location /fetch {
                internal;
                proxy_pass ;
                proxy_store on;
                proxy_store_access user:rw group:rw all:rw;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Via "nginx";
                alias /data/Cache/$host;
        }
}
}
用一个脚本去除理常放置时间长的文件:
mkdir /data/Cache
mkdir /data/Cache/temp
chown -R nobody:nobody /data/Cache
fine /data/Cache/$host -type -atime 30 |xargs rm -rf {}\
$host换成你域名
根据路径在做调整.
把那个加到Cron中吧.
上线观察中.
阅读(1616) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~