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

负载均衡

    • 一,正向proxy与反向proxynginx
    • 二,nginx安装
    • 三,nginx负载均衡
      • 场景
    • 四,配置nginx访问代理多个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的首页。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jquery想说爱你不容易

JQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。由John Resig在2006年1月的BarCamp NYC上发布第一个版本。目前是由 Dave Methvin 领导的开发团队进行开发。全球前10000个访问最高的网站中,有59%使用了jQuery,是目前最…

android-波浪效果ripple-background

能产生波浪效果的背景图片控件,可以自定义颜色,波浪扩展的速度,波浪的圈数。运行效果: 下载地址:http://jcodecraeer.com/a/opensource/2014/1110/1946.html转载于:https://www.cnblogs.com/noodlesonce/p/4090163.htm…

仔细学习CSS(一)

推荐编辑器&#xff1a;Notepad (under Windows), TextEdit (on the Mac) or KEdit (under KDE)&#xff1b; Style Master, Dreamweaver or GoLive For HTML and CSS, we want simple, plain text files. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">…

容器数据卷

容器数据卷技术 它是一种将容器中的数据持久化到linux宿主机的技术。 # 1. 使用命令挂载 -v docker run -it -v 主机目录:容器目录# 将容器centos 的home目录挂载到linux的用户docker_study/centos_home目录下面 [rootizbp1imy docker_study]# docker run -it -v /usr/e…

对contentoffset的理解

今天遇到一个问题&#xff0c;在写瀑布流时&#xff0c;竖屏的时候可以正常实现&#xff0c;在手机变成横屏后&#xff0c;总是显示不全。 最终查了两个小时&#xff0c;查到了导致这个的原因&#xff0c;是自己的判断cell是否在当前显示区域的方法写错了。 根本原因是没有很好…

微信开发小程序

小程序开发工具win10下载地址 官方文档地址 学了一下小程序&#xff0c;… 虽然目前小程序用得少&#xff0c;本人。但是回家买票还是有用小程序的。 小程序开发不难&#xff0c;会三件套html&#xff0c; css &#xff0c;js 就行了。如果你会vue就更快了。它就是一套前端项目…

DockerFile构建

dockerfiletodo item基础命令编写dockefiel基于centos镜像制作tomcatjdk的镜像todo item 是用来构建docker镜像的脚本&#xff1b;命令参数脚本。构建步骤:1、编写一个dockerfile文件2、 docker build 构建为一个镜像3、docker run 运行镜像4、docker push 发布镜像(dockerhub…

Linux:jumpserver V3的安装与升级(在线离线)(2)

官方文档写的非常详细&#xff0c;我这篇文章时间长了&#xff0c;会随着官方版本更新而落后 JumpServer - 开源堡垒机 - 官网https://www.jumpserver.org/安装和升级在官网也有详细的信息&#xff0c;我写本章是为了记录一下实验 我的系统是centos7.9 在线安装 在确定我们可…

redis 学习笔记(1)-编译、启动、停止

一、下载、编译 redis是以源码方式发行的&#xff0c;先下载源码&#xff0c;然后在linux下编译 1.1 http://www.redis.io/download 先到这里下载Stable稳定版&#xff0c;目前最新版本是2.8.17 1.2 上传到linux&#xff0c;然后运行以下命令解压 tar xzf redis-2.8.17.tar.gz …

微信小程序 调用地图接口,实现定位

1. demo01.wxml <!-- 定位 --> <view><button type"default" bindtap"get_location">get position</button></view><view><map id"my_map" latitude"{{latitude}}" longitude"{{longitu…

【ASP.NET】获取网站目录的方法

获取网站物理路径: HttpRuntime.AppDomainAppPath获取网站虚拟路径: HttpRuntime.AppDomainAppVirtualPath转载于:https://www.cnblogs.com/chenguoxingblog/p/4107771.html

如何使用div优雅的布局

flex布局方式1&#xff0c;float飘起来~方式2&#xff0c;使用flex&#xff0c;将多个div合并到一行就是跨行和跨列嘛…如果表格做就easy…但是, div是块级标签&#xff0c;每个div会独占一行…方式1&#xff0c;float飘起来~ 下面的两个div会到一行… <div> <div s…

多行文本溢出问题

总结了一些网上看到的&#xff0c;结合自己的思考&#xff0c;举例如下&#xff1a; http://jssl915.github.io/overflow.html 转载于:https://www.cnblogs.com/lj915/p/4112840.html

spring-cloud学习demo,git地址

https://github.com/sevenyoungairye/spring-cloud2020 解决分布式&#xff0c;微服务的各种问题。 不停更新&#xff0c;欢迎三连。

centos7 frp内网穿透

git下载地址 中文文档参考 这里需要nginx 配置https证书, frp服务端&#xff0c;frp客户端, 阿里centos7, 子级域名。client -->(https) nginx --> frp server(7000) in linux:8888 --> frp client(7000) in windows --> current client:8080 client --> ge…