Nginx+Tomcat 负载均衡

文章目录

  • 一、Nginx 负载均衡实现原理
  • 二、Nginx 动静分离实现原理
  • 三、Nginx + Tomcat 动静分离、负载均衡配置步骤


一、Nginx 负载均衡实现原理

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

二、Nginx 动静分离实现原理

1、动静分离原理
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由 Nginx 提供服务,动态资源由 Nginx 转发至后端。
Nginx+Tomcat 负载均衡_第2张图片

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 #修改配置文件


Nginx+Tomcat 负载均衡_第3张图片

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
Nginx+Tomcat 负载均衡_第4张图片

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 #修改配置文件

Nginx+Tomcat 负载均衡_第5张图片

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
Nginx+Tomcat 负载均衡_第6张图片

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;
    }

Nginx+Tomcat 负载均衡_第7张图片

systemctl restart nginx.service

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

Nginx+Tomcat 负载均衡_第8张图片

Nginx+Tomcat 负载均衡_第9张图片
Nginx+Tomcat 负载均衡_第10张图片

你可能感兴趣的:(nginx,tomcat,linux)