Nginx+Tomcat 群集
Tomcat简介
- 最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发
- 安装Tomcat后,安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件
Tomcat重要目录
- bin :存放启动和关闭Tomcat脚本
- conf :存放Tomcat不同的配置文件
- doc:存放Tomcat文档
- lib:存放Tomcat运行需要的库文件
- logs:存放Tomcat执行时的LOG文件
- src:存放Tomcat的源代码
- webapps:Tomcat的主要Web发布目录
- work:存放jsp编译后产生的class文件
Nginx应用
- Nginx是一款非常优秀的HTTP服务器软件
- 支持高达50 000个并发连接数的响
- 拥有强大的静态资源处理能力
- 运行稳定
- 内存、CPU等系统资源消耗非常低
- 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力
Nginx负载均衡实现原理
- Nginx实现负载均衡是通过反向代理实现
反向代理原理:
- Nginx配置反向代理的主要参数
(1)upstream服务池名{}
配置后端服务器池,以提供响应数据
(2)proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理 - Nginx+Tomcat用到了upstream模块
Nginx动静分离实现原理动静分离原理
- 服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
Nginx动静分离实现原理
- Nginx静态处理优势
- Nginx处理静态页面的效率远高于Tomcat的处理能力
- 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
- Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
- Nginx处理静态资源的能力是Tomcat处理的6倍
项目部署
一、基础环境
- 关闭防火墙、内核安全机制
- 修改主机名
hostnamectl set-hostname nginx
hostnamectl set-hostname tomcat01
hostnamectl set-hostname tomcat02
hostnamectl set-hostname client
二、部署Nginx
这里用的是编译安装nginx
在nginx节点安装
yum -y install gcc gcc_* make
yum -y install pcre-devel zlib-devel
rpm -qa | grep -e pcre-devel -e zlib-devel
useradd -M -s /sbin/nologin nginx
上传nginx的tar包
tar zxvf nginx-1.12.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
cd /usr/local/nginx/sbin/
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
cd
nginx -t # 检查语法是否有问题
nginx # 启动nginx
三、安装tomcat
tomcat01和02节点安装
这里tomcat和jdk的包已下载下来,需要的可以在网上自行下载
- 解压jdk的包
rpm -ivh jdk-8u102-linux-x64\ \(1\).rpm
- 写环境变量
在最后一行添加
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_102/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME:/bin:$PATH
source /etc/profile # 刷新环境变量
- 查看java版本
java -version # 有类似以下回显即可
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
- 安装Tomcat
tar zxvf apache-tomcat-9.0.8.tar.gz
- 启动服务
mv apache-tomcat-9.0.8 /usr/local/tomcat
cd /usr/local/tomcat/
bin/startup.sh
- 检测是否安装成功
访问浏览器 【部署tomcat的IP地址】:8080
回显下方网页即可
- 两个tomcat节点写入测试页面
vi /usr/local/tomcat/webapps/ROOT/index.jsp
把里面的内容全部删除写入tomcat01和02
- 进行测试
打开网页输入两个tomcat节点的IP地址:8080,进行测试回显tomcat01和02即可
四、配置Nginx
- 在nginx节点进行配置
vi /usr/local/nginx/conf/nginx.conf
在第大概第33行#gzip on;下添加
upstream tomcat {
server 192.168.11.160:8080 weight=1; (第一台tomcat的IP地址)
server 192.168.11.161:8080 weight=1; (第二台tomcat的IP地址)
}
在第49~52行左右location段下面添加
location ~ .*.jsp$ {
proxy_pass http://tomcat;
}
- 重载服务
nginx -s reload
- 在client节点访问nginx的IP地址
curl 【nginx节点的ip地址】
PS:若在后面加上/index.jsp,轮流显示tomcat01和02即可
curl 【nginx节点的ip地址】/index.jsp
- 在第一台机器写测试内容
进入nginx网站根目录写入测试内容
cd /usr/local/nginx/html/
vi index.html
删除全部内容,写入ngxix(这是测试内容)
- 在client节点进行访问
curl 【nginx节点的ip地址】 回显nginx即可