负载均衡
- 一,正向proxy与反向proxynginx
- 二,nginx安装
- 三,nginx负载均衡
- 场景
- 四,配置nginx访问代理多个tomcat
一,正向proxy与反向proxynginx
- 正向proxy
正向proxy
- 返向proxy nginx
客户端发送请求到服务器(客户端认为是原始服务器,
实际上是一台反向代理服务器),
反向代理服务器接收请求并将请求
发送给内部网络中的多台集群服务器,
并将响应的数据返回给客户端。
一般用于服务器集群,分布式等,
实现负载均衡,提高处理和响应速度,
保证内网安全,隐藏服务器信息,防止Web攻击。
根据特定的策略:分发请求到指定的服务器端口。nginx将数据返回到client。
1. 虚拟主机:把一台物理服务器划分为多个虚拟服务器,每个虚拟主机对应一个Web站点
2. 负载均衡,同一个ip,映射多个端口,每个端口放一样的程序。
二,nginx安装
# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm# 安装 Nginx
sudo yum install -y nginx# 启动 Nginx
sudo systemctl start nginx.service# 设置开机自启 Nginx
sudo systemctl enable nginx.service
三,nginx负载均衡
同一个ip,映射多个端口,每个端口放一样的程序。
场景
一只猫只能支持1000的并发量,在某个时间点,只能有1000人访问,否则服务器就挂了。
增加tomcat,但是每个猫都会占一个端口。如果这样,一个网站只映射一个端口的。用户不会敲端口来用你的po软件…
如是使用nginx来分发用户的请求,到一个端口上,如到下面的80端口(80隐藏了)。
http://java.com
nginx通过一定的配置,监听80端口,将请求分发到某个的tomcat,响应你想要的内容。
如果用户多了,继续加服务器,做成服务器集群,每个服务器里面可有多个tomcat。
现在服务器搞定了,如果nginx挂了呢?心跳机制,使用keepalive,高可用。
用来监听nginx服务器。
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器
四,配置nginx访问代理多个tomcat
这里只代理两个端口。
反向代理的策略:配置中体现。
描述:
轮询:你分配一下,我分配一下
随机:看nginx心情
权重:设置优先级
就近:服务器离用户比较近
你需要:
服务器上有两个tomcat,一个不改变,
第二个猫复制,改变端口就行了,保证所有端口和第一个不一样。并且能正常启动。
保证tomcat的首页不一样,上传不同的项目到tomcat测试。
安装nginx。
配置:
1. 进入nginx目录
cd /etc/nginx/config.d
2. 新建tomcat.conf,以.conf结尾的文件
vim tomcat.conf
将下面的代码copy进去,esc 然后按p
# 两个端口,会被代理
upstream abc.cn { # abc.cn 可以随便取,但是要同下面location-pass 的一样。server 127.0.0.1:8081; #weight=10;server 127.0.0.1:8082; # weight=3;}# 这里是监听8080端口
server {listen 8080;server_name localhost;location / {proxy_pass http://abc.cn; # 同上proxy_redirect default;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
3. 按esc,然后输入:wq保存退出
4. nginx -t 检查语法
5. nginx -s reload 重启nginx
测试:
上面的配置,访问 localhost:8080。如果你没上传项目到tomcat,看到的都是tomcat的首页。