Tomcat 和 Nginx
Tomcat 和 Nginx
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配置反向代理的主要参数
upstream 服务池名{}
配置后端服务器池,以提供响应数据
proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
Nginx动静分离
动静分离原理
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源(音频,图片等)由Nginx提供服务,动态资源Nginx转发至后端( tomcat等)
Nginx静态处理优势
Nginx处理静态页面的效率远高于Tomcat的处理能力
若Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
Nginx处理静态资源的能力是Tomcat处理的6倍
部署解析
Nginx+Tomcat负载均衡,动静分离群集
以Nginx作为负载均衡器,Tomcat作为应用服务器
Tomcat部署与测试网站搭建
要求部署两台后端Tomcat服务器
为了进行测试,搭建两个内容不同的网站
Tomcat部署与网站搭建步骤
关闭firewalld防火墙
安装JDK,配置JAVA环境
安装配置Tomcat
创建/web/webapp1目录,修改server.xml,将网站文件目录更改到/web/webapp1/路径下
/web/webapp1/下建立测试页面index.jsp,并进行测试
Nginx配置负载均衡、动静分离
在Nginx服务器上安装Nginx,反向代理两个Tomcat站点,并实现负载均衡
关闭Firewalld防火墙
安装Nginx依赖软件包
解压并编译安装Nginx
配置nginx.conf,添加location静态页面处理及添加upstream配置段与proxy pass
检测配置文件与启动Nginx
测试负载均衡、动静分离效果
部署环境
Nginx1:192.168.1.10
Nginx2:192.168.1.11
Tomcat1:192.168.1.12
Tomcat2:192.168.1.13
nfs:192.168.1.15
NFS配置
mkdir /web1
mkdir /web2
cd /web1
vi index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>Chen</title>
</head>
<body>
<% out.println("this is web");%>
<div>动态页面</div><br/><img src="1.jpg" />
</body>
</html>
cp index.jsp /web2
cd /web2
vi index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>Chen</title>
</head>
<body>
<% out.println("this is web");%>
<div>动态页面</div><br/><img src="1.jpg" />
</body>
</html>
设置共享目录
vi /etc/exports
systemctl start nfs
systemctl start rpcbind
showmount -e
Tomcat 配置
Tomcat1
解压
tar zxvf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
vi /etc/profile 最后加
source /etc/profile
验证 Java 环境是否正则工作
编写脚本
vi a.java
public class a {
public static void main (String[] args) {
System.out.println("Chen!");
}
}
测试是否正常
javac a.java
java a
安装tomcat
tomcat1上
tar zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
mkdir /webapp1
mount 192.168.1.15:/web1 /webapp1/
修改 Tomcat 配置文件站点目录
vi /usr/local/tomcat8/conf/server.xml
链接
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown..sh /usr/bin/tomcatdown
tomcatup
本机访问测试
Tomcat2
tar zxvf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
vi /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre
source /etc/profile
验证 Java 环境是否正则工作
编写脚本
vi a.java
public class a {
public static void main (String[] args) {
System.out.println("Chen!");
}
}
javac a.java
java a
安装 Tomcat
tar zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
mkdir /webapp2
mount 192.168.1.15:/web2 /webapp2/
vi /usr/local/tomcat8/conf/server.xml
链接
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown..sh /usr/bin/tomcatdown
tomcatup
本机访问测试
Nginx 调度器配置
Nginx1和2一样的
安装 Nginx
tar zxvf nginx-1.13.7.tar.gz
创建不可登录用户
useradd -M -s /usr/sbin/nologin nginx
安装 Nginx 所需依赖包
yum -y install pcre-devel zlib-devel
编译安装
cd nginx-1.13.7/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
设置 Tomcat 池
vi /usr/local/nginx/conf/nginx.conf
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t
nginx
访问
Keepalived 配置
Nginx1—Keepalived
安装 Keepalived
tar zxvf keepalived-2.0.13.tar.gz
yum -y install popt-devel kernel-devel openssl-devel
cd keepalived-2.0.13/
./configure --prefix=/
make && make install
cp keepalived/etc/init.d/keepalived /etc/init.d/
vi /etc/init.d/keepalived
chkconfig: 35 20 70
chmod 755 /etc/init.d
chkconfig --add /etc/init.d/keepalived
systemctl enable keepalived
vi /etc/keepalived/keepalived.conf
global_defs {
router_id nginx1
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx.sh"
interval 2
weight 2
}
vrrp_instance vi_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 110
adver_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.1.200
}
}
scp /etc/keepalived/keepalived.confroot@192.168.1.11:/etc/keepalived/keepalived.conf
vi /usr/local/src/nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ]
then /usr/local/nginx/sbin/nginx
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]
then exit 1
else exit 0
fi
else
exit 0
fi
scp /usr/local/src/nginx.sh root@192.168.1.11:/usr/local/src
chmod +x /usr/local/src/nginx.sh
systemctl start keepalived
网页测试
http://192.168.1.200
http://192.168.1.200/index.jsp