• Nginx+Tomcat 搭建负载均衡、动静分离


    一,动静分离

    动静分离能够起到系统加速的效果

     用户向nginx发送请求,nginx作为代理服务器将请求代理给后端,原本项目部署会全部放在tomcat某个目录下,在这个目录下会出现问题,tomcat会响应很多非动态的请求(比如说一个index文件中hi有非常多的图片css,js,html一次请求肯定完不成,第二次请求时再去找那些静态资源,那么并发请求就会非常多)那么如果将一些静态资源(img,css,js)全放到nginx中,将动静态资源分开来,这就是动静分离。

    二,环境部署

    两台tomcat,一台nginx

    nginx 192.168.135.112

    tomcat 001 192.168.135.188

    tomcat 003 192.168.135.189

    三,动静分离配置

    1,tomcat188;

    1. [root@tomcat188 ~]#mkdir /usr/local/tomcat/webapps/test/
    2. [root@tomcat188 ~]#vim /usr/local/tomcat/webapps/test/index.jsp动态页面配置

     

    <%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    JSP test1 page

    <% out.println("呀是啦累");%>

    2,添加虚拟主机配置

    vim /usr/local/tomcat/conf/server.xml

     
           
         

    关闭重启

    shutdown.sh

    startup.sh

    查看端口

    3, tomcat189配置

    [root@tomcat189 ~]#mkdir /usr/local/tomcat/webapps/test/

    [root@tomcat189 ~]#vim /usr/local/tomcat/webapps/test/index.jsp动态页面配置

     <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


    JSP test2 page


    <% out.println("个么四?");%>

    添加虚拟主机配置

     
           
         

    关闭重启

    shutdown.sh

    startup.sh

    查看端口

     

     四,nginx112     server配置

    1,准备静态图片

     2,配置文件设置

     

    http {
    ......
        #gzip on;
        
        #配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
        upstream tomcat_server {
            server 192.168.135.188:8080 weight=1;
            server 192.168.125.189:8080 weight=1;
        }
        
        server {
            listen 80;
            server_name localhost;
        
            charset utf-8;
        
            #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 ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
                root /usr/local/nginx/html/xxx;
                expires 10d;
            }
            
            location / {
                root html;
                index index.html index.htm;
            }
    ......
        }
    ......
    }

    systemctl restart nginx.service
    ————————————————

    测试效果

    测试静态页面效果
    浏览器访问 http://192.168.135.112/
    浏览器访问 http://192.168.135.112/1.jpg

    测试负载均衡效果,不断刷新浏览器测试
    浏览器访问 http://192.168.135.112/test/index.jsp

     

     

     

  • 相关阅读:
    Java解析生成二维码
    哪些软件操作比较简单?手机拼图软件哪个好?
    windows使用命令行创建文件echo >test.txt(可以是.gp .js .ts..)
    Android 开发板接入外接USB键盘App重启问题
    能源与经济面板数据集(中国能源统计年鉴面板数据+区域经济、人口与二氧化碳排放量面板数据)
    华为OD机试 - 判断字符串子序列(Java 2023 B卷 100分)
    原型-设计模式
    基于百度AI人脸识别+uniapp+springboot的高校防疫小程序
    2.c++基础语法
    转置卷积
  • 原文地址:https://blog.csdn.net/m0_54594153/article/details/126705660