一、nginx安装
1.下载nginx
2.解压
3.安装依赖
4.编译安装
5.开启nginx
6.网页测试
二、负载均衡配置
1.设备
server1 | 192.168.109.128 |
server2 | 192.168.109.129 |
server3 | 192.168.109.130 |
2.轮询
是upstream模块负载均衡默认的策略。每个请求会按时间顺序逐个分配到不同的后端服务器。轮询不需要额外的配置。
upstream backend{
server 192.168.109.128 weight=1;
server 192.168.109.129;
server 192.168.109.130;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}
3.weight加权[加权轮询]
weight=number:用来设置服务器的权重,默认为1,权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的,所有此策略比较适合服务器的硬件配置差别比较大的情况
upstream backend{
server 192.168.109.128 weight=10;
server 192.168.109.129 weight=5;
server 192.168.109.130 weight=3;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}
4.ip_hash
当对后端的多台动态应用服务器做负载均衡时,ip_hash指令能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。这样,当来
自某一个IP的用户在后端Web服务器A上登录后,在访问该站点的其他URL,能保证其访问的还是后端web服务器A。
upstream backend{
ip_hash;
server 192.168.109.128;
server 192.168.109.129;
server 192.168.109.130;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}
5.least_conn
最少连接,把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用
的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果
upstream backend{
least_conn;
server 192.168.109.128;
server 192.168.109.129;
server 192.168.109.130;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}
6.url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取.
upstream backend{
hash &request_uri;
server 192.168.109.128;
server 192.168.109.129;
server 192.168.109.130;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}
7.fair
fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、加载时间长短智能的进行负载均衡
upstream backend{
fair;
server 192.168.109.128;
server 192.168.109.129;
server 192.168.109.130;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}