一、nginx缓存静态资源
在nginx中使用expires指令来控制HTTP头部过期时间,这个指令可以放在http {}、server {}、location {} 等语句块或者 location {} 语句块中的条件语句中,如在 location 语句块中用 expires 指令控制静态文件:
expires 1d;
}
即jpg、jpeg、png、gif、ico、css、js这些文件缓存一天。
时间单位:
- ms:毫秒
- s:秒
- m:分钟
- h:小时
- d:天
- w:星期
- m:月
- y:年
当没有到过期时间静态资源需要更新时,可以在文件后面加上版本号或修改时间,如js文件:
demo.js?v=2.0
这样浏览器就会去服务器重新下载文件,或者会从缓存中加载。
二、nginx反向代理
修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。
反向代理配置示例:
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#设置反向代理的地址
proxy_pass http://proxyServer;
}
三、nginx负载均衡
ngnix实现负载均衡有以下几种方式:
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
server 192.168.22.142;
server 192.168.22.145;
}
2、ip_hash
每个请求按访问ip的hash结果分配,所以同一个ip会固定到一台服务器上。
ip_hash;
server 192.168.22.142;
server 192.168.22.145;
}
3、weight
指定轮询几率,与访问比率成正比,用于后端服务器性能不均匀的情况。
server 192.168.22.142 weight=10;
server 192.168.22.145 weight=10;
}
4、fair
按后端服务器的响应时间来分配,响应时间短的优先分配
server 192.168.22.142;
server 192.168.22.145;
fair;
}
5、url_hash
按访问的url的hash来分配,每个url会定性到一台服务器
server 192.168.22.142;
server 192.168.22.145;
hash $request_uri;
hash_method crc32;
}
hash_method 表示hash算法,在server不能加入weight参数。