负载均衡proxy


负载均衡是用来调度节点的,所以只需要在 搭载 负载均衡的服务器上,设置调转的 .conf 文件,指向相关的服务器即可,可用单台先测试,但是既然是调度,肯定不能是1台服务器,

负载均衡调动单台的.conf 配置

  1. 负载均衡调动的节点请求中不要有多个相同端口的.conf文件,避免冲突。影响实验。

  2. 记录真实ip需要proxy_set_header Connection “”; 和proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;一起设置。

server{
        linten 80; 开启80监听端口
        server_name web.oldxu.com  域名
     
        location / {
        proxy_pass http://10.0.0.7:8080;  
        通过设置ip和端口来进行连接,实现负载均衡的调度 
        proxy_http_version 1.1;
        设置负载均衡使用的 http协议版本
        proxy_set_header Connection "";
        将来访的真实ip人性化的方式存储在/var/log/nginx/acesss.log
        proxy_set_header Host $http_host;
        设置连接的域名的头部,这样可以避免因为端口相同造成请求结果混乱的情况
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        记录真实的请求ip,因为代理端只做转发,所以节点服务端记录的应该是真实的请求ip,而不是代理端的。
      }
}  
  1. 其他相关的一些设置:

    连接相关:

Syntax: proxy_connect_timeout time; 代理端与后端请求连接的超时时间
Default: proxy_connect_timeout 60s; 默认是60秒
Context: http, server, location    

Syntax: proxy_read_timeout time; 代理端等待后端响应的超时时间
Default: proxy_read_timeout	60s; 默认60s
Context: http,	server,	location   

Syntax: proxy_send_timeout time; 后端将数据传送给代理端的超时时间
Default: proxy_send_timeout 60s; 默认60秒
Context: http, server, location

缓存相关:开启缓存可以加速响应

Syntax: proxy_buffering on | off; 是否开始 hui缓存区
Default: proxy_buffering on;  默认是开启
开启之后会将数据以头部和数据的方式进行缓存
proxy_buffer_size(Headers) 64k  就是可以缓存64k
 proxy_buffers(data) 4 64k  就是可以缓存4x64=256k

proxy_temp_path 路径
proxy_max_temp_file_size 目录缓冲的总大小
proxy_temp_file_write_size 单词写入的缓存大小

== 该配置写在proxy_buffer_size下方如果设置好头部的缓存大小一般可以不用设置。==

最后,因为要调用的设置过多,所以不可能每写一个配置就重写一遍,所以,我们可以用将配置全部写入一个文件,然后用include统一调用,

vim	/etc/nginx/proxy_params
proxy_http_version	1.1;
proxy_set_header	Host	$http_host;
proxy_set_header	X-Real-IP	$remote_addr;
proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
proxy_connect_timeout	30;
proxy_send_timeout	60;
proxy_read_timeout	60;
proxy_buffering	on;
proxy_buffer_size	64k;
proxy_buffers	4	64k;
location / {
	     proxy_pass http://127.0.0.1:8080;
		 include	proxy_params;
}

负载均衡如何合理调动多台服务器节点

简单到不能再简单!再http层写入

upstream web_cluster {  
# web_cluster 是集群的名字
        server 172.16.1.7:80;
        server 172.16.1.8:80;
      	}

server {
        listen 80;
        server_name web.oldxu.com;
        
        location / {
                proxy_pass http://web_cluster; 
# http://指定负载均衡连接的节点
                include proxy_params;
        }
}
~  

调度算法

调度算法只能存在一个

  1. 轮询调度,就是轮着来

  2. 加权轮询,按分配的权重来
    weight

  3. ip_hash
    将请求分配给特定的一台服务器处理,但是会造成单台服务器压力过大,不实用。
    写在upstream web_cluster { 下面一行即可

  4. 一致性hash调度
    比ip hash 更智能。不需要大量计算,如果有服务器故障,会自动顺延到下一个服务器。
    写在upstream web_cluster { 下面一行即可

hash $remote_addr(来源ip的变量)  consistent;
确定来源的变量:less/etc/nginx/nginx.conf
  1. url_hash
    缓存调度,需要一台缓存服务器,负载均衡使用url_hash 请求资源,会将资源在缓存服务器缓存一份,后续,如果再有请求,会自动将请求连接 有缓存的服务器,加快响应速度。
  2. least_conn
    哪台服务器的请求少,就将请求调度到哪台

通过负载均衡设置后端服务器的状态

max_fails和fail_timeout 要结合使用
例:

max_fails=2 fail_tinmeout=5s

与服务器尝试连接失败2次后,认为服务器不可用,然后每5s重新连接一次,如果达到max_fail设定的次数依旧不可用,则判定服务不可用。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值