一.负载均衡
http{
...
# upstream 服务名称
upstream myserver{
#ip_hash;
server 127.0.0.1:8080 [weight=1];
server 127.0.0.1:8081 [weight=1];
#fair;
}
...
server{
location / {
...
proxy_pass http://myserver;
proxy_connect_timeout 10;
}
...
}
}
nginx分配服务器策略:
1.轮询(默认)
每个请求按时间循序逐一分配到不同的后端服务器,如果后端服务器宕机,能自动剔除。
2.权重
weight代表权重,默认为1,而权重越高被分配的客户端越多。
3.ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题。
4.fair(第三方)
按照后端服务器的响应时间来分配请求,响应时间短的优先分配。
二.动静分离
http{
...
...
server{
listen 80;
server_name 192.168.17.2;
location /www/ {
root /data/;
index index.html index.htm;
#expires -1;
}
location /image/ {
root /data/;
#列出访问目录
#autoindex on;
}
}
}
expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用)
语法:expires [time|epoch|max|pff]
默认值:off
expires指令控制HTTP应答中的“Expires”和“Cache-Control”Header头部信息,启动控制页面缓存的作用
time:可以使用正数或负数。“Expires”头标的值将通过当前系统时间加上设定time值来设定。
time值还控制"Cache-Control"的值:
负数表示no-cache
正数或零表示max-age=time
epoch:指定“Expires”的值为 1 January,1970,00:00:01 GMT
max:指定“Expires”的值为31 December2037 23:59:59GMT,"Cache-Control"的值为10年。
-1:指定“Expires”的值为当前服务器时间-1s,即永远过期。
off:不修改“Expires”和"Cache-Control"的值
expires使用了特定的时间,并且要求服务器和客户端的是中严格同步。
而Cache-Control是用max-age指令指定组件被缓存多久。