动静分离Nginx+Tomcat
Nginx群集
nginx的优点
- 支持高达50000个并发连接数的响应
- 拥有强大的静态资源处理能力
- 运行稳定
- 内存、CPU等系统资源消耗非常低
静态处理优势
- nginx处理静态页面效率远高于tomcat的处理能力
- 若tomcat的请求量为1000次,则nginx的请求量为6000次
- tomcat每秒的吞吐量为0.6M,nginx的每秒吞吐量为3.6M
- nginx处理静态资源的能力是tomcat处理的6倍
nginx实现负载均衡
在nginx中配置反向代理:
在主配置文件中添加
upstream 服务池名 { }
配置后端服务器池,以提供响应数据
proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
nginx实现动静分离
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由nginx提供服务,动态资源nginx转发至后端tomcat服务器
Nginx+Tomcat动静分离项目实例
本项目包含一台Nginx调度器192.168.10.12
两台Tomcat服务器192.168.10.13,192.168.10.14
tomcat1
##搭建tomcat依赖的java环境
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 JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib
source /etc/profile
##部署tomcat
tar -zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/tomcatdown
vi /usr/local/tomcat/conf/server.xml
<Context docBase="/web1" path="" reloadable="false">
</Context>
mkdir /web1
vi /web1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>TEST PAGE</title></head>
<body>
<% out.println("伞兵一号卢本伟准备就绪");%>
<div>tomcat 动态网页</div>
<br/>
<img src="lbw.jpg">
</body>
</html>
tomcatup
netstat -napt | grep 8080 #检查服务端口开启
tomcat2
##搭建tomcat依赖的java环境
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 JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib
source /etc/profile
##部署tomcat
tar -zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/tomcatdown
vi /usr/local/tomcat/conf/server.xml
<Context docBase="/web2" path="" reloadable="false">
</Context>
mkdir /web2
vi /web2/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>TEST PAGE</title></head>
<body>
<% out.println("给阿姨倒一杯卡布奇诺");%>
<div>tomcat 动态网页</div>
<br/>
<img src="lbw.jpg">
</body>
</html>
tomcatup
netstat -napt | grep 8080 #检查服务端口开启
nginx调度器
安装部署nginx
yum -y install gcc gcc-c++ make pcre-devel zlib-devel
useradd -M -s /sbin/nologin nginx
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
vi /usr/local/nginx/conf/nginx.conf
user nginx nginx;
error_log logs/error.log info;
pid logs/nginx.pid;
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
server {
charset utf-8; #主机设置开启支持utf-8编码
}
}
配置动静分离反向代理
vi /usr/local/nginx/conf/nginx.conf
http {
upstream tomcat_server { #定义服务器池
server 192.168.10.13:8080 weight=1;
server 192.168.10.14:8080 weight=1;
}
server {
location ~ \.jsp$ { #配置反向代理
proxy_pass http://tomcat_server;
}
}
}
配置静态资源
cp lbw.jpg /usr/local/nginx/html