nginx配置负载均衡(史上最详细)
所谓负载均衡就是:就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,从而不会产生集群中大量请求只请求某一台服务器,从而使该服务器宕机的情况。
一:nginx反向代理
实现负载均衡之前我们要先实现反向代理,即请求到某个域名,默认该请求被nginx接收到,然后nginx根据配置,类似DNS解析,nginx会根据配置把特定的请求转发到对应的服务器
我们修改nginx的conf/nginx.conf配置文件如上图的两个地方
实现效果:使用nginx反向代理,访问 www.localhost:80.com 直接跳转到 127.0.0.1:8080
请求的是nginx的地址,代理到tomcat 的 页面
二:nginx负载均衡
实现效果
浏览器地址栏输入地址 http://127.0.0.1/myweb/index.jsp,负载均衡效果,将请求平均分配到8080和9999两台服务器上。
准备工作
(1)准备两台tomcat服务器,一台8080,一台9999
(2)在两台tomcat里面webapps目录中创建一个小项目如:myweb/index.jsp
实现负载均衡的几种方式
声明:实现负载均衡方式有很多,配置完一种后面的大差不差,我们主要讲解第一种
1,轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器
down掉,能自动剔除。
# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:8080;
server localhost:9999;
}
server {
listen 80;
server_name localhost;
location / {
root html;
proxy_pass http://server_list;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
使用 两台服务器 ,拷贝一个tomcat
修改 conf 文件下面的 server.xml 配置文件 , 分别修改三个端口号
<Server port="18005" shutdown="SHUTDOWN">
<Connector port="9999" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
修改两台 tomcat 服务器下面 webapps\ROOT\index.jsp
分别加上 标记 ,用以区分
<h1>main</h1>
<h1>back</h1>
在这里插入图片描述
1
2,weight 权重
weight 代表权重,默认为1,权重越高被分配的客户端越多
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如
# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:8080 weight=5;
server localhost:9999 weight=1;
}
3,ip_hash
每个请求按访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session丢失的问题
upstream backserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
不管刷新多少遍,始终访问的是同一台tomcat服务器
4,最少连接
web请求会被转发到连接数最少的服务器上
upstream backserver {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}
更多推荐
所有评论(0)