项目情况:
用户上传的音乐需在播放,音乐量比较大。同时用户上传的音乐命不会重名,不用过期。
用Squid和varnish在高负载时,会出现无响应的现象。内网流量较大。
nginx说明:
以前用F5觉的比较牛的就是可以缓存转发,感觉功能挺牛的。没钱买F5,只好用Nginx顶一把了。nginx可以说不算一个Cache,他不存在过期的问题。
也可以和负载均衡在一台机器上.
机器的硬盘要大一点。根据数据大小来定吧。
利用404,405的处理方法.
定义后端的Server,按分组的概念:
定义一个Server:
完成配置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 http://music_ser;
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;
}
}
}
用一个脚本去除理常放置时间长的文件:
$host换成你域名
根据路径在做调整,加到Cron中吧。