Skip to content

配制和说明

  • 轮询策略
  • 将前端每个请求按顺序(时间顺序或者排列顺序)逐一分配到不同的后端节点上,对于出现问题的后端接口自动删除
sh
upstream mysvr {
	server 192.168.1.80:7878;
	server 192.168.1.81:3333;
}
  • 加权轮询策略
  • 在基本的轮询策略上考虑各后端节点接收请求的权重,指定各后端节点被轮询到几率。
sh
pstream mysvr {
	server 192.168.1.80:7878 weight=1;
	server 192.168.1.81:3333 weight=2;
}
  • ip_hash
  • 将前端的访问IP进行hash操作,然后根据hash结果将请求分配给不同的后端节点。通过Nginx的实现,每个前端访问IP会固定访问一个后端节点,可避免session共享的问题。
sh
upstream mysvr {
	server 192.168.1.80:7878;
	server 192.168.1.81:3333;
	ip_hash;
}
  • 反向代理配制http
sh
server {
    listen 80;
    server_name  test.test.com;
    location / {
      proxy_pass http://mysvr;
    }
  • 反向代理配制https
sh
server{
    listen 443 ssl;
    server_name test.test.com;
    ssl_certificate /path/cert.pem;
    ssl_certificate_key /path/key.pem;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
      proxy_pass http://mysvr;
    }
}

说明

  • url hash:扩展策略中的url hash在形式上和IP hash相近,不同之处在于,IP hash策略是对前端访问IP进行了hash操作,而url hash策略是对前端请求的url进行hash操作。url hash策略优点在于,如果后端有缓存服务器,它能够提高缓存效率,同时解决了session的问题;但其缺点是,如果后端节点出现异常,它不能自动排除该节点。
  • fair:该模块将前端请求转发到一个最近负载最小的后台节点。Nginx通过后端节点对请求的响应时间来判断负载情况。响应时间短的节点负载相对就轻,得出判断结果后,Nginx就将前端请求转到到选中的负载最轻的节点。

Released under the MIT License.