1.配置文件配置
//在http模块加上upstream配置
upstream www.myweb.com {
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8081 weight=1;
}
//在server模块里添加location,并配置proxy_pass
server{
location /myweb {
proxy_pass http://www.myweb.com;
}
}
注意:
- 负载均衡是不需要配置root路径的,因为tomcat本身就设置了根路径,就是webapps目录。
- 注意html文件在浏览器中会有缓存的,所以看起来没有实现负载均衡。
- 假如nginx监听的端口是8080,那么我们的tomcat就不能使用8080端口启动了。
- 注意看proxy_pass中带有http://,而upstream却没有
2.负载均衡设置
2.2 轮询
轮询是默认配置,这里的轮询并不是每个请求轮流分配到不同的后端服务器,与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。如果后端服务器down掉,将自动剔除upstream backserver {
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
2.2 权重
每个请求按一定比例分发到不同的后端服务器,weight值越大访问的比例越大,用于后端服务器性能不均的情况upstream backserver {
server 192.168.0.14 weight=5;
server 192.168.0.15 weight=2;
}
2.3 ip_hash
p_hash也叫IP绑定,每个请求按访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session丢失的问题
算法:hash(“124.207.55.82”) % 2 = 0, 1;%2代表的是负载均衡的服务器台数。如果我的ip%2=1,那么我将永远访问的服务器都是1号。upstream backserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
2.4 最少链接
web请求会被转发到连接数最少的服务器上upstream backserver {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
2.5 backup和down
```
upstream backserver { server 127.0.0.1:9100;
#其它所有的非backup机器down的时候,才请求backup机器
server 127.0.0.1:9200 backup;
}
upstream backserver { server 127.0.0.1:9100;
#down表示当前的server是down状态,不参与负载均衡
server 127.0.0.1:9200 down; }
<a name="cVgLs"></a>
## 3.静态资源负载均衡
注意这里的81端口服务与82端口服务是另起的nginx服务。这里之所以没有配置root路径,那是因为这台nginx服务是专门拦截请求的,将请求负载均衡到了81、82端口服务。在81和82服务中我们进行了root根路径设置。
upstream static.myweb.com { server 127.0.0.1:81 weight=1; server 127.0.0.1:82 weight=1; } location ~ .*/(css|js|img|images) { proxy_pass http://static.myweb.com; }
```