小白也看的懂的Nginx+Tomcat的负载均衡,动静分离实操

tech2025-10-10  1

小白也看的懂的Nginx+Tomcat的负载均衡,动静分离实操

一:实现动静分离1.1:实操环境1.2:实验目的1.3:实验步骤1.3.1:搭建nginx服务1.3.2:搭建Tomcat服务1.3.3:动静分离配置1.3.4:nginx处理静态图片,Tomcat处理动态页面 二:负载均衡2.1:实验环境2.2:实验目的2.3:实验步骤

一:实现动静分离

1.1:实操环境

VMware软件一台centos7作为nginx代理服务器。IP地址:20.0.0.51一台centos7作为Tomcat1节点服务器。IP地址:20.0.0.52一台centos7作为Tomcat2节点服务器。IP地址:20.0.0.48

1.2:实验目的

通过访问nginx代理服务器,静态自己处理,动态交给Tomcat处理

1.3:实验步骤

1.3.1:搭建nginx服务

关闭防火墙 [root@nginx ~]# systemctl stop firewalld.service [root@nginx ~]# setenforce 0 安装环境 [root@nginx ~]# yum install -y pcre-devel zlib-devel gcc gcc-c++ make '安装环境' [root@nginx ~]# useradd -M -s /sbin/nologin nginx '创建没有家目录,不允许登陆的nginx用户' 解压nginx源码包并进行编译安装 [root@nginx ~]# tar zxvf nginx-1.12.0.tar.gz -C /opt [root@nginx ~]# cd nginx-1.12.0/ [root@nginx nginx-1.12.2]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx [root@nginx nginx-1.12.2]# make && make install 创建软链接并检查语法是否正确 [root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin [root@nginx nginx-1.12.2]# nginx -t 制作nginx启动脚本 [root@nginx nginx-1.12.2]# vim /etc/init.d/nginx '添加使用systemctl工具进行管理' #!/bin/bash # chkconfig:- 99 20 # description:Nginx Service 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.2]# chmod +x /etc/init.d/nginx [root@nginx nginx-1.12.2]# chkconfig --add nginx 启动nginx服务 [root@nginx nginx-1.12.2]# netstat -ntap |grep 80 [root@nginx nginx-1.12.2]# service nginx start [root@nginx nginx-1.12.2]# netstat -ntap |grep 80 tcp6 0 0 :::8009 :::* LISTEN 14111/java tcp6 0 0 :::8080 :::* LISTEN 14111/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 14111/java

1.3.2:搭建Tomcat服务

关闭防火墙和核心防护 [root@tomcat1 ~]# systemctl stop firewalld.service [root@tomcat1 ~]# setenforce 0 解压准备的jdk [root@tomcat1 ~]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ 配置jdk环境 [root@tomcat1 ~]# vim /etc/profile '编辑环境' '在最后加入以下内容' export JAVA_HOME=/usr/local/jdk1.8.0_91 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH [root@tomcat1 ~]# source /etc/profile '立即生效,引用环境' 安装Tomcat [root@tomcat1 ~]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/ '将安装包移动到/usr/local下' [root@tomcat1 ~]# cd /usr/local/ [root@tomcat1 local]# mv apache-tomcat-8.5.16/ tomcat '重命名' [root@tomcat1 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin [root@tomcat1 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin [root@tomcat1 local]# startup.sh '启动Tomcat'

1.3.3:动静分离配置

nginx上操作 在nginx服务器中操作编辑配置文件nginx.conf [root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf '在server中添加' server { ..省略 '添加以下内容' location ~.*.jsp$ { '做跳转' proxy_pass http://20.0.0.52:8080; proxy_set_header Host $host; } [root@nginx ~]# nginx -t 创建静态页面 [root@nginx ~]# 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 ~]# service nginx stop [root@nginx ~]# service nginx start tomcat上操作 创建动态页面 [root@tomcat1 ~]# mkdir /usr/local/tomcat/webapps/test [root@tomcat1 ~]# 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> </body> </html> 访问测试

1.3.4:nginx处理静态图片,Tomcat处理动态页面

tomcat服务操作 [root@tomcat1 local]# vim /usr/local/tomcat/webapps/test/index.jsp '在<div>动态页面</div>下面添加' <img src="chiji.jpg"> nginx服务操作 [root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf '在server中添加' server { ..省略 location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root html; expires 30d; } (Tomcat指路径,nginx放图片) 注意:目录名称需要和Java项目名称相同 [root@nginx ~]# cd /usr/local/nginx/html/test [root@nginx test]# rz -E rz waiting to receive. [root@nginx test]# ls chiji.jpg [root@nginx test]# service nginx restart 测试

二:负载均衡

2.1:实验环境

基于上一个实验环境,还有一台centos7:20.0.0.48没有用

首先根据安装tomcat,步骤与tomcat1一样

2.2:实验目的

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

2.3:实验步骤

进行页面测试 [root@tomcat2 local]# cd tomcat/ [root@tomcat2 tomcat]# mkdir -pv /web/webapp1 创建web目录 [root@tomcat2 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 KEVIN Web");%> </body> </html> '在Tomcat1中将KEVIN换成BENET,做一个区分' 修改tomcat的配置文件 vim /usr/local/tomcat/conf/server.xml '148行后添加以下内容' <Context docBase="/web/webapp1" path="" reloadable="false"> </Context> '注解:docBASE:web应用的文档基准目录' 'reloadable设置简史“类”是否变化' 'path=""设置默认“类”' 启动tomcat服务 [root@tomcat2 tomcat]# shutdown.sh [root@tomcat2 tomcat]#startup.sh 测试

在nginx上配置动静分离,修改主配置文件 [root@nginx html]# vim /usr/local/nginx/conf/nginx.conf ...省略内容 #gzip on; '添加' upstream tomcat_server { '添加节点服务器地址' server 20.0.0.52:8080 weight=1; server 20.0.0.48:8080 weight=1; } ...省略内容 'location 里添加' location / { root html; index index.html index.htm; proxy_pass http://tomcat_server; ’添加,设置转发到节点服务器‘ } 检查语法并启动 [root@nginx html]# /usr/local/nginx/sbin/nginx -t [root@nginx html]# service nginx stop [root@nginx html]# service nginx start 群集测试

最新回复(0)