Nginx+Tomcat的负载均衡,动静分离

实现动静分离

实操环境

VMware软件
一台centos7作为nginx代理服务器。IP地址:192.168.20.40
一台centos7作为Tomcat1节点服务器。IP地址:192.168.20.10
一台centos7作为Tomcat2节点服务器。IP地址:192.168.20.20

实验目的

通过访问nginx代理服务器,静态自己处理,动态交给Tomcat处理
nginx 192.168.20.40
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# hostnamectl set-hostname nginx
[root@localhost ~]# su
[root@nginx ~]# 

tomcat01 192.168.20.10
[root@localhost ~]# hostnamectl set-hostname tomcat01
[root@localhost ~]# su
[root@tomcat01 ~]#

tomcat02 192.168.20.20
[root@localhost ~]# hostnamectl set-hostname tomcat02
[root@localhost ~]# su
[root@tomcat02 ~]# 

iptables -F
setenforce 0
systemctl stop firewalld

动静分离
Nginx服务
[root@nginx ~]# yum -y install pcre-devel zlib-devel gcc-c++
[root@nginx ~]# useradd -M -s /sbin/nologin nginx
[root@nginx ~]# rz -E
rz waiting to receive.
[root@nginx ~]# tar -zxvf nginx-1.12.0.tar.gz -C /usr/local/
[root@nginx ~]# cd /usr/local/nginx-1.12.0/
[root@nginx nginx-1.12.0]# ./configure
[root@nginx nginx-1.12.0]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@nginx nginx-1.12.0]# make && make install
[root@nginx nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@nginx nginx-1.12.0]# nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx nginx-1.12.0]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Server Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
 start)
  $PROG
  ;;
 stop)
  kill -s QUIT $(cat $PIDF)
  ;;
 restart)
  $0 stop
  $0 start
  ;;
 reload)
  kill -s HUP $(cat $PIDF)
  ;;
 *)
   echo "Usage: $0 {start|stop|restart|reload}"
   exit 1
esac
exit 0

[root@nginx nginx-1.12.0]# chmod +x /etc/init.d/nginx
[root@nginx nginx-1.12.0]# chkconfig --add nginx
[root@nginx nginx-1.12.0]# service nginx start
[root@nginx nginx-1.12.0]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17567/nginx: master 

Tomcat服务
tomcat01
[root@tomcat01 ~]# rz -E
rz waiting to receive.
[root@tomcat01 ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local
[root@tomcat01 ~]# vim /etc/profile
 77 export JAVA_HOME=/usr/local/jdk1.8.0_91
 78 export JRE_HOME=${
    
    JAVA_HOME}/jre
 79 export CLASSPATH=.:${
    
    JAVA_HOME}/lib:${
    
    JRE_HOME}/lib
 80 export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat01 ~]# source /etc/profile
[root@tomcat01 ~]# tar zvxf apache-tomcat-8.5.16.tar.gz -C /usr/local
[root@tomcat01 ~]# cd /usr/local
[root@tomcat01 local]# mv apache-tomcat-8.5.16/ tomcat
[root@tomcat01 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
[root@tomcat01 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
[root@tomcat01 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat01 bin]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      17668/java 

动静分离配置
对Java的文件请求转发到Tomcat处理
//在Nginx服务器中操作编辑配置文件nginx.conf
[root@nginx nginx-1.12.0]# cd /usr/local/nginx/conf/
[root@nginx conf]# vim nginx.conf
        location ~.*.jsp$ {
    
    
            proxy_pass http://192.168.20.10:8080;
            proxy_set_header Host $host;
        }
[root@nginx conf]# nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
//创建静态页面
[root@nginx conf]# vim /usr/local/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>静态页面</title>
<style>
body {
    
    
  width: 35em;
  margin: 0 auto;
  font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
     <h1>静态页面</h1>
     <p>这是个静态页面</p>
</body>
</html>
[root@nginx conf]# service nginx stop
[root@nginx conf]# service nginx start

//在Tomcat服务器中操作
tomcat01
[root@tomcat01 local]# mkdir /usr/local/tomcat/webapps/test
[root@tomcat01 local]# vim /usr/local/tomcat/webapps/test/index.jsp
<!DOCTYPE html>
<%@ page language="java" contenType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<div>动态页面</div>
</body>
</html>

[root@tomcat01 bin]# shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@tomcat01 bin]# startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat01 bin]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      17668/java       

//访问静态
http://192.168.20.40/
//访问动态
http://192.168.20.40/test/index.jsp

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

负载均衡

实验环境

基于上一个实验环境

实验目的

通过访问nginx代理服务器,实现负载均衡

//Tomcat服务操作
tomcat01
[root@tomcat01 bin]# vim /usr/local/tomcat/webapps/test/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<div>动态页面</div><br><img src="01.png"> //添加页面图片
</body>
</html>


//Nginx服务操作
[root@nginx conf]# vim /usr/local/nginx/conf/nginx.conf
        location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
    
    
            root html;
            expires 30d;
        }
(Tomcat指路径,Nginx放图片)
注意:目录名称需要和Java项目明后才能相同

[root@nginx conf]# mkdir /usr/local/nginx/html/test
[root@nginx conf]# cd /usr/local/nginx/html/test/
[root@nginx test]# rz -E
rz waiting to receive.

http://192.168.20.40/test/index.jsp

在这里插入图片描述


负载均衡----------------
tomcat02
[root@tomcat02 ~]# rz -E
rz waiting to receive.
[root@tomcat02 ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local
[root@tomcat02 ~]# vim /etc/profile
 77 export JAVA_HOME=/usr/local/jdk1.8.0_91
 78 export JRE_HOME=${
    
    JAVA_HOME}/jre
 79 export CLASSPATH=.:${
    
    JAVA_HOME}/lib:${
    
    JRE_HOME}/lib
 80 export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat02 ~]# source /etc/profile
[root@tomcat02 ~]# tar zvxf apache-tomcat-8.5.16.tar.gz -C /usr/local
[root@tomcat02 ~]# cd /usr/local
[root@tomcat02 local]# mv apache-tomcat-8.5.16/ tomcat
[root@tomcat02 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
[root@tomcat02 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
[root@tomcat02 local]# cd /usr/local/tomcat/bin/
[root@tomcat02 bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat02 bin]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      74945/java          

加入测试页面
[root@tomcat01 bin]# cd /usr/local/tomcat/
[root@tomcat01 tomcat]# mkdir -pv web/webapp1
[root@tomcat01 tomcat]# vim web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
   <head>
         <title>JSP test1 page</title>
   </head>
  <body>
         <% out.println("Welcome hui web");%>
  </body>
</html>
[root@tomcat01 bin]# vim /usr/local/tomcat/conf/server.xml
//148行
151       <Context docBase="/web/webapp1" path="" reloadable="false">
152       </Context>//添加

[root@tomcat02 bin]# cd /usr/local/tomcat/
[root@tomcat02 tomcat]# mkdir -pv web/webapp1
[root@tomcat02 tomcat]# vim web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
   <head>
         <title>JSP test1 page</title>
   </head>
  <body>
         <% out.println("Welcome fang web");%>
  </body>
</html>
[root@tomcat02 bin]# vim /usr/local/tomcat/conf/server.xml
//148行
151       <Context docBase="/web/webapp1" path="" reloadable="false">
152       </Context>//添加

//注解:docBase:web应用的文档基准目录
path="":设置默认“类”
reloadable:设置监视“类”是否变化

[root@tomcat01 tomcat]# shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@tomcat01 tomcat]# startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat01 tomcat]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      75547/java          
tcp6       0      0 ::1:46992               ::1:8080                TIME_WAIT   -                   

[root@tomcat02 tomcat]# shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@tomcat02 tomcat]# startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat02 tomcat]# netstat -ntap | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      75547/java          
tcp6       0      0 ::1:46992               ::1:8080                TIME_WAIT   -                   

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

[root@nginx test]# vim /usr/local/nginx/conf/nginx.conf
    upstream tomcat_server {
    
                        '添加节点服务器地址'
        server 192.168.20.10:8080 weight=1;
        server 192.168.20.20:8080 weight=1;
        }
        location / {
    
    
            root html;
            index index.html index.htm;
            proxy_pass http://tomcat_server;
        }

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

猜你喜欢

转载自blog.csdn.net/weixin_46355881/article/details/108433608