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,一经查实,立即删除!

相关文章

android-波浪效果ripple-background

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

容器数据卷

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

微信开发小程序

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

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

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

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

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

如何使用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

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…

微服务基本环境的搭建

order-paymentspring-cloud 环境的搭建订单模块 服务消费者支付模块 服务提供者payment, CommonOrder公共抽取这里使用maven聚合的方式构建微服务。 只给出pom demo 地址 spring-cloud 环境的搭建 父依赖 <?xml version"1.0" encoding"UTF-8"?>…

服务注册中心 eureka 搭建

服务注册中心&#xff0c;netfix公司的&#xff0c;出道即巅峰&#xff0c;可惜没人维护了。 1.x 可用&#xff0c;2.x 使用后果自负。本文讲eureka服务中心的搭建&#xff0c;分为单机版本和eureka集群版本。以及服务消费者&#xff0c;服务提供者如何入驻注册中心。 eurekaeu…

jwt, json web token

jwt1. JWT什么是JWTJWT能做什么为什么用JWTJWT结构JWT问题和趋势2. jwt加解密工具&#xff0c;使用pom工具类测试1. JWT 什么是JWT 官方定义 json web token是一个开放标准&#xff08;rfc7519&#xff09;&#xff0c;它定义了一种紧凑的&#xff0c;自包含的方式&#xff0c;…

微信小程序结合Java后端实现登录注册

微信小程序登录微信用户&#xff0c;授权信息&#xff0c;相关实体类微信用户表实体类获取微信的token常量抽取httpClient工具&#xff0c;用于发送请求获取tokennbplus pom工具类请求微信后台&#xff0c;获取openid&#xff0c;返回的是json登录或者注册完整业务实现&#xf…

consul作为服务注册中心

consulconsul下载地址providerorderconsul 由go语言编写的一款优秀的服务注册中心应用。 https://www.consul.io/intro/index.html 中文文档 功能&#xff1a; 1. 服务发现 提供HTTP和DNS两种发现方式 2. 健康监测 支持多种协议&#xff0c;HTTP、TCP、Docker、Shell脚本定制…