Nginx配置负载均衡与解决跨域问题

文章目录

      • 一、负载均衡配置
      • 二、解决跨域
      • 三、失败跳转问题
      • 四、负载均衡策略
          • 1、轮询
          • 2、最少连接
          • 3、最少连接
          • 4、ip_hash

一、负载均衡配置

	upstream blogServer{
        server 127.0.0.1:8080;
    }
     server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass http://blogServer;         
		}
	}

这里需要注意,集群名称不能使用下划线_,否则会导致无法解析。

二、解决跨域

server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass http://blogServer;
          	add_header Access-Control-Allow-Methods *;
            add_header Access-Control-Max-Age 3600;
            add_header Access-Control-Allow-Credentials true;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Headers $http_access_control_request_headers;
            if ($request_method = OPTIONS ) {
                return 200;
            }
			
        }
    }

三、失败跳转问题

在配置负载均衡后,当集群中当请求发送到一台坏的服务区后,出现一段等待响应过程的过程,要等它失败,才会跳转其他服务。 这个时间由以下3个参数控制:

proxy_connect_timeout:与服务器连接的超时时间,默认60s
fail_timeout:当该时间内服务器没响应,则认为服务器失效,默认10s
max_fails:允许连接失败次数,默认为1
等待时间 = proxy_connect_timeout + fail_timeout * max_fails

Nginx配置负载均衡与解决跨域问题_第1张图片

四、负载均衡策略

1、轮询

这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。

upstream  fengzp.com {   
    server   192.168.99.100:42000; 
    server   192.168.99.100:42001;  
}
2、最少连接

把请求分配到连接数最少的server

upstream  fengzp.com {   
    least_conn;
    server   192.168.99.100:42000; 
    server   192.168.99.100:42001;  
}
3、最少连接

使用weight来指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍。

upstream  fengzp.com {   
    server   192.168.99.100:42000 weight=1; 
    server   192.168.99.100:42001 weight=2;  
}
4、ip_hash

每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。

upstream  fengzp.com {   
    ip_hash;
    server   192.168.99.100:42000; 
    server   192.168.99.100:42001;  
}

ip_hash可以和weight结合使用。

你可能感兴趣的:(其他)