静态网站
Nginx是一个HTTP的web服务器,可以将服务器上的静态文件(如HTML、图片等)通过HTTP
协议返回给浏览器客户端;
server{
listen 80; #端口号
location /{
root/opt/www/;#静态文件路径
}
}
访问时:ip+port(端口) = root
例如:192.168.0.1:8000
负载均衡
描述:当用户在浏览器输入www.web.com进行访问的时候,如何将用户请求分发到集群中不同的机器上呢,这就是负载均衡要做的事。
负载均衡通常是指将请求“均匀”分摊到集群中多个服务器节点上执行,这里的均匀是指在一个
比较大的统计范围内是基本均匀的,并不是完全均匀。
配置如下两步即可:
1.在http模块加上:(举例)
upstream www.xxx.com{
server 127.0.0.1:9100 weight=3;
server 127.0.0.1:9200 weight=1;
}
其中weight=1表示权重,用于后端服务器性能不均的情况,访问比率约等于权重之比,权重越大访问机会越多;
(一种策略)
upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,
若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器;
2.在serve模块里添加:(举例)
location /myweb{ #路径匹配
proxy_pass http://www.myweb.com; #proxy_pass 代理转发
}
Nginx常用负载均衡策略
1.轮询(默认)
每个请求轮流分配到不同的后端服务器,如果后端服务器down掉,将自动剔除;
例:
upstream backserver{
server 127.0.0.1:8080;
server 127.0.0.1:9090;
#轮流交替访问两个server
}
2.权重
每个请求按一定比例分发到不同的后端服务器,weight值越大访问的比例越大,用于后端服务器
性能不均的情况;
upstream backserver{
server 192.168.0.14 weight=5;
server 192.168.0.15 weight=2;
}
3.ip_hash
ip_hash也叫IP绑定,每个请求而按访ip的hash值分配,这样每个访问客户端会固定访问
一个后端服务器,可以解决会话Session丢失的问题;
例:
upstream backserver{
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
4.最少连接
web请求会被转发到连接数最少的服务器上;
例:
upstream backserver{
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
负载均衡其他几个配置:
upstream backserver{
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090 backup;(其它所有的非backup机器down的时候,才请求backup机器)
}
upstream backserver{
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090 down;(down表示当前的serve是down状态,不参与负载均衡)
}