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;

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

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

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

<html>

<head>

<title>JSP test1 page</title>

</head>

<body>

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

</body>

</html>

2,添加虚拟主机配置

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

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
      </Host>

关闭重启

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"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("个么四?");%>
</body>
</html>

添加虚拟主机配置

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
      </Host>

关闭重启

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

 

猜你喜欢

转载自blog.csdn.net/m0_54594153/article/details/126705660