nginx配置-第二篇(负载均衡)
2022-01-20 本文已影响0人
响呼雷
负载均衡:加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
废话不多说
第一步:准备两台或者三台(甚至更多)服务器,项目已经在每一台服务器上部署完毕
srv1.example.com 服务器1
srv2.example.com 服务器2
srv3.example.com 服务器3
配置文件修改如下nginx官方地址
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1; //代理
proxy_set_header Host $host;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}
}
看到这里,你可能会说:就这?其实还真就这!
调度算法
方法1:默认轮询(每个请求按时间顺序逐一分配到不同的后端服务器)
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
方法2:权重weight(权重越高被分配到的几率越大)
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
方法3:ip_hash(客户端的 IP 地址被用作散列键来确定应该为客户端的请求选择服务器组中的哪个服务器。此方法确保来自同一客户端的请求将始终定向到同一服务器,除非该服务器不可用)
upstream myapp1 {
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
方法4:最少连接(下一个请求被分配给活动连接最少的服务器)
upstream myapp1 {
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
方法5:fair(按后端服务器的响应时间来分配请求,响应时间短的优先分配)
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
fair;
}
nginx官方地址工作闲余多翻翻看看,配置调优参数还是很多的,慢慢看。