天天看点

群集nginx+tomcat实现动静分离1. nginx群集2. nginx+tomcat动静分离实验

文章目录

  • 1. nginx群集
    • 1.1 nginx优点
    • 1.2 nginx静态处理优势
    • 1.3 nginx负载均衡实现原理
    • 1.4 nginx动静分离实现原理
  • 2. nginx+tomcat动静分离实验
    • 2.1节点服务器配置
    • 2.2 nginx调度服务器
    • 2.3测试效果

1. nginx群集

1.1 nginx优点

  • 支持高达50000个并发连接数的响应
  • 拥有强大的静态资源处理能力
  • 运行稳定
  • 内存、CPU等系统资源消耗非常低

1.2 nginx静态处理优势

  • nginx处理静态页面效率远高于tomcat的处理能力
  • 若tomcat的请求量为1000次,则nginx的请求量为6000次
  • tomcat每秒的吞吐量为0.6M,nginx的每秒吞吐量为3.6M
  • nginx处理静态资源的能力是tomcat处理的6倍

1.3 nginx负载均衡实现原理

在nginx中配置反向代理

##在主配置文件中添加
upstream 服务池名 { }
##配置后端服务器池,以提供响应数据
proxy_pass http://服务池名
##配置将访问请求转发给后端服务器池的服务器处理
           

1.4 nginx动静分离实现原理

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由nginx提供服务,动态资源nginx转发至后端tomcat服务器

2. nginx+tomcat动静分离实验

环境:

一台nginx调度器:192.168.20.10

两台tomcat搭建的web节点服务器:192.168.20.80,192.168.20.100

一台客户机

2.1节点服务器配置

web1

##搭建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("Welcome to test page 1");%>
<div>tomcat 动态网页</div>
<br/>
<img src="a.jpg">
</body>
</html>

tomcatup
netstat -napt | grep 8080		#检查服务端口开启
           

web2

##与web1不同点
#1.创建tomcat网页目录
mkdir /web2

#2.修改tomcat的context
vi /usr/local/tomcat/conf/server.xml
<Context docBase="/web2" path="" reloadable="false">
</Context>

#3.创建web2网页(网页不同用于测试调度算法)
vi /web1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>TEST PAGE</title></head>
<body>
<% out.println("Welcome to test page 2");%>
<div>tomcat 动态网页</div>
<br/>
<img src="a.jpg">
</body>
</html>
           

2.2 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.20.80:8080 weight=1;
                server 192.168.20.40:8080 weight=1;
        }
server {
		location ~ \.jsp$ {			#配置反向代理
                proxy_pass http://tomcat_server;
        }
	}
}
           

配置网页静态资源

将a.jpg图片放入/usr/local/nginx/html

由于静态资源由nginx处理,所以图片要放入nginx根目录下

否则网页打开时找不到图片资源

2.3测试效果

客户机访问192.168.20.100/index.jsp

动静分离测试正常:动态网页请求成功转发给后端tomcat服务器,静态资源图片加载正常

负载均衡群集调度测试正常:符合轮询rr算法

第一次访问

群集nginx+tomcat实现动静分离1. nginx群集2. nginx+tomcat动静分离实验

第二次访问

群集nginx+tomcat实现动静分离1. nginx群集2. nginx+tomcat动静分离实验

继续阅读