Nginx+Tomcat 负载均衡


一、Nginx 负载均衡实现原理

1、Nginx 实现负载均衡是通过反向代理实现
2、Nginx 配置反向代理的主要参数
(1)、upstream 服务池名 {}
配置后端服务器池,以提供响应数据
(2)、proxy_pass http:// 服务池名
配置将访问请求转发给后端服务器池的服务器处理
3、反向代理原理
在这里插入图片描述

二、Nginx 动静分离实现原理

1、动静分离原理
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由 Nginx 提供服务,动态资源由 Nginx 转发至后端。
在这里插入图片描述

2、Nginx 静态处理优势
Nginx 处理静态页面的效率远高于 Tomcat 的处理能力
若 Tomcat 的请求量为1000次,则 Nginx 的请求量为6000次
Tomcat 每秒的吞吐量为0.6M,Nginx 的每秒吞吐量为3.6M
Nginx 处理静态资源的能力是 Tomcat 处理的6倍

三、Nginx + Tomcat 动静分离、负载均衡配置步骤

环境准备:
一台Nginx服务器
两台装有Tomcat的机器

1、Tomcat1 server 配置
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp #动态页面的配置
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

JSP test1 page <% out.println("动态页面 1,hahaha");%> ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210205162618253.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doYjE3NTExNzg0NDg=,size_16,color_FFFFFF,t_70)

vim /usr/local/tomcat/conf/server.xml #修改配置文件


在这里插入图片描述

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
在这里插入图片描述

2、Tomcat2 server 配置
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp #动态页面的配置
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>

JSP test2 page <% out.println("动态页面 2,heiheihei");%> ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210205162741809.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3doYjE3NTExNzg0NDg=,size_16,color_FFFFFF,t_70)

vim /usr/local/tomcat/conf/server.xml #修改配置文件

在这里插入图片描述

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
在这里插入图片描述

3、Nginx server 配置
#准备静态页面和静态图片
echo ‘

this is static

’ > /usr/local/nginx/html/index.html

mkdir /usr/local/nginx/html/img
cd /usr/local/nginx/html/img/
#上传一张图片到此目录下
[root@localhost img]#ls
game.jpg

vim /usr/local/nginx/conf/nginx.conf

http {

#gzip on;

#配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
upstream tomcat_server {
  server 192.168.200.50:8080 weight=1;
  server 192.168.200.40:8080 weight=1;
}

}
server {
listen 80;
server_name www.hahaha.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;
    #配置Nginx处理动态页面请求,将 .jsp 文件请求转发到Tomcat 服务器处理
    location ~ .*\.jsp$ {
        proxy_pass http://tomcat_server;   
        #设置后端的 Web 服务器可以获取远程客户端的真是IP
        #设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认host的值为proxy_pass指令设置的主机名
        proxy_set_header HOST $host;
        #把$remote_addr赋值给X-Real-IP,来获取源IP
        proxy_set_header X-Real-IP $remote_addr;
        #在Nginx作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    
    #配置Nginx处理静态图片请求
    location ~ .*\.(jpg|png|jepg|gif|bmp|swf|css)${
        root   /usr/local/nginx/html/img/
        expires 10d;
        }
    location / {
        root html;
        index  index.html index.htm;
    }

在这里插入图片描述

systemctl restart nginx.service

此时在一台新机子上进行访问 http://192.168.66.11,会出现Nginx上设置的静态页面
而访问 http://192.168.66.11/index.jsp 时,会动态的在Tomcat1和Tomcat2之间进行切换访问。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于您提到的keepalived、nginxtomcat、redis和mysql,这些是常用于构建高可用和负载均衡的Web应用架构的关键组件。 1. Keepalived:Keepalived是一种开源的高可用解决方案,可以提供IP地址和服务的故障转移。它通常与负载均衡器(如Nginx)一起使用,以确保当主服务器故障时,备份服务器可以接管服务。 2. NginxNginx是一款高性能的开源Web服务器和反向代理服务器。它可以作为负载均衡器,在多个后端服务器(如Tomcat、Redis和MySQL)之间分发请求,并提供静态文件的高效传输。 3. TomcatTomcat是Java Servlet容器,用于部署和运行Java Web应用程序。它可以作为应用服务器与Nginx配合使用,通过反向代理将请求分发到多个Tomcat实例,以实现负载均衡和高可用性。 4. Redis:Redis是一种基于内存的开源键值存储数据库,被广泛用于缓存、会话存储和消息队列等场景。在Web应用架构中,Redis可以作为缓存层,提高数据读取速度,并减轻后端数据库(如MySQL)的负载。 5. MySQL:MySQL是一种流行的开源关系型数据库管理系统,常用于存储应用程序的持久化数据。它可以与Tomcat结合使用,作为后端数据库存储和管理数据。 以上是对keepalived、nginxtomcat、redis和mysql的简要介绍,它们在Web应用架构中扮演着不同的角色,以提供高可用、高性能和负载均衡的服务。如果您对其中任何一个组件有更具体的问题,我很乐意为您解答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值