Nginx配置3-反向代理&负载均衡

Posted elfcafe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx配置3-反向代理&负载均衡相关的知识,希望对你有一定的参考价值。

nginx配置3-反向代理&负载均衡

部署架构

IP 主机名 系统软件版本 描述
10.24.1.16 app-node1 Tomcat & Nginx1.16.0 app-node1应用服务器
10.24.1.17 app-node2 Tomcat app-node2应用服务器

配置文件

#设定负载均衡的服务器列表
upstream app_cluster { 
  sticky;
      server  10.24.1.16:7001; 	weight=10 down max_fails=3
      server  10.24.1.17:7001;  weight=5 backup max_conns=800;
 } 
# down:表示当前的server暂时不参与负载 
# weight:默认为1,weight越大,负载的权重就越大。 
# backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。

# max_conns=800	根据不同机器配置设置最大连接数,防止挂掉
# max_fails=3 	失败3次认为是宕机然后会自动从负载中摘除

 
 #虚拟服务器信息
server {
        listen       80;				
        server_name  10.24.1.16;         #IP模式服务器名称
	   ......	
     #配置资源规则
	location / {
    	#反向代理至weblogics服务器列表
        proxy_pass         http://app_cluster;
        #反向代理的一些配置,将主机跟真实IP写入HTTP头中
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        ......
        }
}

调度策略

Nginx支持的负载均衡策略有很多,比如round robin(轮询)、random(随机)、weight(权重)、fair(按响应时长)、url_hash(url的hash值)、ip_hash(ip的hash值)、least_conn(最少连接数)等等,具体选用哪种策略要根据要达到的目标来选择。

常用配置

  1. 轮询(默认)
  2. weight权重

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

指定轮询几率weight和访问比率成正比,用于后端服务器性能不均的情况。

业务粘性优先

  1. ip_hash
  2. url_hash(第三方)
  3. sticky(nginx-sticky-module)

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

通过访问url的hash来分配请求,使每个URL定向到同一个放置服务器,从而使服务器为缓存时比较有效。

与ip_hash算法无法共存,为后台各真实服务器设置一个唯一的route值,并通过cookie的方式返回到客户端,同一次 会话对应后台同一台真实物理机,cookie为默认为会话级,如果不设置expires过期时间那么关闭浏览器会话就失效。

性能优先

  1. fair(nginx-upstream-fair)

  2. least_conn(最少连接数)

  3. weight

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

按照保持的连接数。一般来说保持的连接数越少处理的任务越少,资源越空闲,可以交由这台机器处理。

从经验或硬件上把性能好的机器设置的权重高一些。

健康检查

location /status {
	check_status;
}

以上是关于Nginx配置3-反向代理&负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

配置一个nginx反向代理&负载均衡服务器

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx 反向代理负载均衡虚拟主机