nginx可以根据客户端IP进行负载均衡,在upstream里面设置ip_hsah,就可以针对同一个C类地址中的客户端选择同一个后端的服务器,除非后端服务器宕机才会换另一个。 nginx的upstream目前支持的5中方式的分配 - 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream back{
server 192.168.0.11;
server 192.168.0.12;
}
- 指定权重 Weight 指定轮询权值,Weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。
upstream back {
server 192.168.0.11 weight=10;
server 192.168.0.12 weight=9;
}
- ip绑定ip_hash 每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题。
upstream back{
ip_hash;
server 192.168.0.11;
server 192.168.0.12;
}
- fair(第三方) fair安装可以参考:nginx添加负载均衡fair模块 这个是比上面三个算法更加的智能负载均衡算法,此算法可以依据页面大小和加载的时间长短智能的进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载nginx的upstream_fair模块。 >> 可以通过GitHub上获取fair模块:GitHub,然后再编译安装nginx的时候添加上。
--add-module=pat #(pat=fair解压后的绝对路径)
nginx.conf配置文件
upstream back{
server 192.168.0.11;
server 192.168.0.12;
fair;
}
- url_hash(第三方) 此方法按访问的url的hash结果来分配请求的,使每个URL定向到同一台后端服务器,可以进一步提高后端缓存服务器的效率。nginx本身不支持的url_hash的,如果需要使用这种调度算法,必须安装nginx的hash软件包。
upstream back{
server 192.168.0.11;
server 192.168.0.12;
hash $request_uri;
hash_method crc32;
}
- 在需要使用负载均衡的时候在server模块中添加;
server{
listen 80;
server_name www.ywcsb.vip;
location / {
proxy_pass http://back;
}
}
发表评论
共 0 条评论
暂无评论