nginx 反向proxy多个 tomcat,负载均衡

一,正向proxy与反向proxynginx

  1. 正向proxy

正向proxy


  1. 返向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的首页。

猜你喜欢

转载自blog.csdn.net/qq_44783283/article/details/109952755