前言
Tomcat简介
·最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发安装Tomcat后,安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件
一 . Tomcat重要目录
二. Nginx应用
2.1 nginx优势
Nginx是一款非常优秀的HTTP服务器软件
支持高达50 000个并发连接数的响应
拥有强大的静态资源处理能力
·运行稳定
·内存、CPU等系统资源消耗非常低
目前很多大型网站都应用Nginx服务器作为后端网站程
序的反向代理及负载均衡器,提升整个站点的负载并发能力
Nginx静态处理优势
·Nginx处理静态页面的效率远高于Tomcat的处理能力
·若Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
·Nginx处理静态资源的能力是Tomcat处理的6倍
2.2 Nginx负载均衡实现原理
Nginx实现负载均衡是通过反向代理实现
反向代理原理
Nginx配置反向代理的主要参数
upstream服务池名{} 四层代理
配置后端服务器池,以提供响应数据
proxy_pass http://服务池名 //代理模块,将请求转发服务池
配置将访问请求转发给后端服务器池的服务器处理
nginx 支持 七层代理
2.3 Nginx动静分离实现原理
动静分离原理服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
Nginx静态处理优势
·Nginx处理静态页面的效率远高于Tomcat的处理能力
·若Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
·Nginx处理静态资源的能力是Tomcat处理的6倍
三. 案例配置
测试负载均衡、动静分离效果
环境配置
以Nginx作为负载均衡器,Tomcat作为应用服务器
站点,并实现负载均衡
·关闭Firewalld防火墙
安装Nginx依赖软件包
解压并编译安装Nginx
配置nginx.conf,添加location静态页面处理及添加
upstream配置段与proxy_pass
检测配置文件与启动Nginx
Tomcat部署与测试网站搭建
要求部署两台后端Tomcat服务器
.为了进行测试,搭建两个内容不同的网站
Tomcat部署与网站搭建步骤
·关闭firewall防火墙
·安装JDK,配置JAVA环境
安装配置Tomcat
创建/web/webapp1目录,修改server.xml,将网站文件目录
更改到/web/webapp1/路径下
/web/webapp1/下建立测试页面index.isp,并进行测试
3.1 环境搭建
准备4台设备
一台nginx 服务器 做地址静态解析,以及 反向代理,实现负载均衡控制 (NGINX)
两台tomcat 服务器,用做动态解析 及 节点服务器使用 (PC-3 ,PC-4)
一台客户机访问使用
软件包准备:
3.2 动静分离案例配置
3.2.1 配置 nginx 服务器
编译安装 nginx
[root@nginx ~]# systemctl stop firewalld
[root@nginx ~]# setenforce 0
setenforce: SELinux is disabled
[root@nginx ~]# yum -y install gcc \
> gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl \
> zlib-devel \
> pcre
[root@nginx nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
[root@nginx nginx-1.12.2]# tar zxvf nginx-1.12.2.tar.gz
[root@nginx nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module //统计模块
[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/
将服务交给systemctl 管理
[root@nginx nginx-1.12.2]# vim /etc/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -S HUP $MAINPID
ExecStop=/usr/bin/kill -S QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
~
添加执行权限
[root@nginx nginx-1.12.2]# chmod 754 /etc/systemd/system/nginx.service
启动服务测试
[root@nginx nginx-1.12.2]# systemctl start nginx.service
[root@nginx nginx-1.12.2]# netstat -ntap | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19171/nginx: master
3.2.2对两台节点服务器 安装JDK,以及TOMCAT
这里以一台为例,两台同样安装方法
[root@pc-3 opt]# tar -zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local
修改环境变量
[root@pc-3 opt]# vim /etc/profile
加入4行
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@pc-3 opt]# source /etc/profile
安装tomcat
[root@pc-3 opt]# tar -zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local
[root@pc-3 opt]# cd /usr/local
[root@pc-3 local]# mv apache-tomcat-8.5.16/ tomcat
[root@pc-3 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin
[root@pc-3 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin
3.2.3 配置nginx ,启动动静分离
[root@nginx conf]# vim nginx.conf
添加此配置.......................
以JSP 结尾的 动态请求都指向 192.168.100.3:8080服务器
location ~.*.jsp$ {
proxy_pass http://192.168.100.3:8080;
proxy_set_header HOST $host;
}
…
检查配置
[root@nginx conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax isok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
配置首页文件
[root@nginx conf]# vim /usr/local/nginx/html/index.html
<h1> this is 静态页面</h1>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
配置tomcat首页文件
Vim /usr/local/tomcat/webapps/test/index.html
<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<div> 这是动态页面</div>
</body>
</html>
3.2.4 客户端访问192.168.100.20 以及 192.168.100.20/test/index.jsp测试动静分离
3.2.5 nginx 处理静态图片,TOMcat 处理动态页面测试
修改tomcat 首页文件
<!DOCTYPE html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<div> 这是动态页面</div>
<img src="123.jpg"/>
</body>
</html>
~
修改nginx 配置文件
将 123.jpg 图片放到此路径站点目录下
[root@nginx ~]# cd /usr/local/nginx/html/
[root@nginx html]# mkdir test
[root@nginx html]# cd test
[root@nginx test]# rz -E
rz waiting to receive.
[root@nginx test]# ls
123.jpg
[root@nginx test]# pwd
/usr/local/nginx/html/test
[root@nginx test]#
3.2.6 测试,访问成功
3.3 负载均衡案例
3.3.1 配置两台tomcat 的 首页文件
[root@pc-3 examples]# cd /usr/local/tomcat/webapps/
[root@pc-3 webapps]# mkdir new
Vim index.html
[root@pc-4 examples]# cd /usr/local/tomcat/webapps/
[root@pc-4 webapps]# mkdir new
Vim index.html
3.3.2 配置tomcat 的首页站点目录设置(两台同样操作)
以其中一台为例
[root@pc-4 conf]# vim server.xml
添加此行
<Context path="" docBase="new" reloadable="true"/> //new 为默认读取的站点目录
[root@pc-4 conf]# vim web.xml
3.3.3 配置nginx 配置文件
3.3.4 访问192.168.100.20测试
刷新一下,自动切换到节点2 上