http_proxy_module 模块

'http_proxy_module'模块可以将请求转发到另一台服务器,隐藏服务器真实IP
server {
  listen 80;
  server_name www.endvv.com;

location / {
  proxy_pass http://127.0.0.1:1000;
}
}
upsteam web{
  server 127.0.0.1:1000;
}
server {
 listen 80;
 server_name www.endvv.com;
}
location / {
  proxy_pass http://web;
}

模块参数

proxy_set_header Host $host; #设置由后端的服务器获取用户的主机名或者真实的IP地址,以及代理者的真实IP地址
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 600;  #Nnginx跟后端服务器连接超时时间
proxy_send_timeout 600; #后端服务器数据回传时间,必须在时间内传输完所有数据,否则断开链接
roxy_read_timeout 600; #连接成功后,后端服务器响应时间
proxy_buffers  16  4k;  #设置缓冲区的数量和大小,nginx从代理的后端服务器获取的响应信息、会放置到缓冲区
proxy_buffer_size  8k;  #设置缓冲区大小,默认该缓冲区大小等于指令proxy_buffers设置的大小 
proxy_busy_buffers_size 64k; #用于设置系统很忙的时候可以使用proxy_buffers的大小
proxy_temp_file_write_size 64k; #指定proxy缓存临时文件的大小

http_upstream_module模块

模块参数

server 172.16.0.2  #定义后端WEB服务器
weight=1  #默认为1,weight 值越大,分配到访问的概率越高
max_fails=1  #允许请求失败的次数为1
fali_timeout=10s  #max_fails请求失败后,下次检查的间隔时间
backup  #备用服务器,如果主服务器全部宕机了,就会请求备用服务器
down  #表示当前服务器暂时不参与负载均衡

模块调度算法

--调度算法分为两类

第一类为静态调度算法,即负载均衡器根据自身设定的规则进行分配,不需要考虑后端节点服务器的情。例如'rr、wrr、ip_hash'等都属于静态调度算法

第二类为动态调度算法,即负载均衡器会根据后端节点的当前状态来决定是否分发请求,例如:连接数少的有限获得请求,响应时间短的优先获得请求。例如'least_conn、fair'等都属于动态调度算法

调度算法

rr轮循
#默认配置就是轮询策略
upstream web {
 server 172.16.0.2;
 server 172.16.0.3;
}
wrr (weight权重)
--weight 值越大,分配到访问的概率越高,主要用于后端每个服务器性能不均的情况,服务器性能强大的权重设置得高一些可以分到更多的任务,减轻性能较弱机器的运行压力

upstream web {
 server 172.16.0.2 wegith=1;
 server 172.16.0.3 wegith=2;
} 
ip_hash
--根据'hash'算法对每个请求中的访问 IP 进行处理,使来自同一个IP的访客固定访问一个后端服务器,这种方式可以简单而有效地解决动态网页存在的会话'session'共享问题

upstream web {
 ip_hash;
 server 172.16.0.2 wegith=1;
 server 172.16.0.3 wegith=2;
} 
fair 
--'fair'算法可以根据页面大小和加载时间的长短智能地进行负载均衡,就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配,如果需要使用这种调度算法,需要安装'upstream_fair'模块

upstream web {
 fair;
 server 172.16.0.2 wegith=1;
 server 172.16.0.3 wegith=2;
} 
least_conn 
--'least_conn'算法会根据后端服务器连接数来分配请求,优先请求连接数最少的

upstream web {
 least_conn;
 server 172.16.0.2 wegith=1;
 server 172.16.0.3 wegith=2;
} 
url_hash
--'url_hash'算法按访问'URL'的'hash'结果来分配请求,使每个URL定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率命中率

upstream web {
 hash $request_uri consistent;
 server 172.16.0.2 wegith=1;
 server 172.16.0.3 wegith=2;
} 
Last modification:December 30th, 2020 at 04:25 am
如果觉得我的文章对你有用,请随意赞赏