Nginx+Tomcat负载均衡的部署
这里写目录标题
- 一、Nginx和Tomcat搭建群集的优点
- 二、案例部署
- 2.1 案例环境
- 2.2 案例部署
- 2.3 效果验证
一、Nginx和Tomcat搭建群集的优点
传统模型下,一个项目部署在一台tomcat上,这个时候,假如 tomcat 因为服务器资源不够,突然挂机了,出现单点故障,那么整个项目就无法使用,给客户造成的损失可想而知!!
Tomcat 不能单独应用于生产环境下,我们需要一套更可靠的解决方案来完善web站点架构。
Nginx 能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。
目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理以及负载均衡器,来提升整个站点的负载并发能力。
我们可以部署 Nginx + tomcat 服务群集,就可以避免单台服务如果挂机,依然能保证服务正常使用。
当我们把项目 war 包部署到三台服务器上时,即使服务器A、服务器B都挂了,依然能够通过服务器C访问项目资源!
二、案例部署
2.1 案例环境
服务类型 | IP地址 | 软件包 |
---|---|---|
Tomcat-1服务器 | 172.16.1.10 | jdk-8u91-linux-x64.tar.gz、apache-tomcat-8.5.16.tar.gz |
Tomcat-2服务器 | 172.16.1.11 | jdk-8u91-linux-x64.tar.gz、apache-tomcat-8.5.16.tar.gz |
Nginx服务器 | 172.16.1.20 | nginx-1.12.2.tar.gz |
2.2 案例部署
- Tomcat-1
# 解压软件包jdk
[root@tomcat-1 ~]# tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/# 配置环境变量
[root@tomcat-1 ~]# vi /etc/profile
# 追加到最后
export JAVA_HOME=/usr/local/jdk1.8.0_91 #指定家目录
export JRE_HOME=${JAVA_HOME}/jre #java虚拟机
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib #java函数库
export PATH=${JAVA_HOME}/bin:$PATH
[root@tomcat-1 ~]# source /etc/profile# 解压tomcat软件包
[root@tomcat-1 ~]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/local/
[root@tomcat-1 ~]# mv /usr/local/apache-tomcat-8.5.16/ /usr/local/tomcat# 建立软链接,便于服务控制
[root@tomcat-1 ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/tomcatup
[root@tomcat-1 ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/tomcatdown# 关闭防火墙,开启tomcat服务
[root@tomcat-1 ~]# iptables -F
[root@tomcat-1 ~]# setenforce 0
[root@tomcat-1 ~]# tomcatup
[root@tomcat-1 ~]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 33263/java # 修改Tomcat的server.xml文件
[root@tomcat-1 ~]# vi /usr/local/tomcat/conf/server.xml
<Host nane="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true" >
# 添加以下行
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context># 重启服务
[root@tomcat-1 ~]# tomcatdown
[root@tomcat-1 ~]# tomcatup# 创建tomcat的站点内容
[root@tomcat-1 ~]# mkdir -p /web/webapp1
[root@tomcat-1 ~]# vi /web/webapp1/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<h1>动态页面</h1>
<p>Tomcat-1</p>
<img src="test.jpg"/>
</body>
</html>
- Tomcat-2
# 解压软件包jdk
[root@tomcat-2 ~]# tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/# 配置环境变量
[root@tomcat-2 ~]# vi /etc/profile
# 追加到最后
export JAVA_HOME=/usr/local/jdk1.8.0_91 #指定家目录
export JRE_HOME=${JAVA_HOME}/jre #java虚拟机
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib #java函数库
export PATH=${JAVA_HOME}/bin:$PATH
[root@tomcat-2 ~]# source /etc/profile# 解压tomcat软件包
[root@tomcat-2 ~]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/local/
[root@tomcat-2 ~]# mv /usr/local/apache-tomcat-8.5.16/ /usr/local/tomcat# 建立软链接,便于服务控制
[root@tomcat-2 ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/tomcatup
[root@tomcat-2 ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/tomcatdown# 关闭防火墙,开启tomcat服务
[root@tomcat-2 ~]# iptables -F
[root@tomcat-2 ~]# setenforce 0
[root@tomcat-2 ~]# tomcatup
[root@tomcat-2 ~]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 1634/java # 修改Tomcat的server.xml文件
[root@tomcat-2 ~]# vi /usr/local/tomcat/conf/server.xml
<Host nane="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true" >
# 添加以下行
<Context docBase="/web/webapp2" path="" reloadable="false">
</Context># 重启服务
[root@tomcat-2 ~]# tomcatdown
[root@tomcat-2 ~]# tomcatup# 创建tomcat的站点内容
[root@tomcat-2 ~]# mkdir -p /web/webapp1
[root@tomcat-2 ~]# vi /web/webapp1/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<h1>动态页面</h1>
<p>Tomcat-2</p>
<img src="test.jpg"/>
</body>
</html>
- Nginx
# 安装依赖包
[root@nginx ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel # 创建名为nginx的用户,且不允许登录系统
[root@nginx ~]# useradd -M -s /sbin/nologin nginx# 编译安装nginx软件包
[root@nginx ~]# tar xf nginx-1.12.2.tar.gz
[root@nginx ~]# cd nginx-1.12.2
[root@nginx nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@nginx nginx-1.12.2]# make && make install# 编辑脚本,使用service工具,控制服务
[root@nginx ~]# vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" instart)$PROG;;stop)kill -s QUIT $(cat $PIDF);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PIDF);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1
esac
exit 0# 添加执行权限,将脚本文件添加到服务列表中
cd /etc/init.d
[root@nginx ~]# chmod +x /etc/init.d/nginx
[root@nginx ~]# chkconfig --add nginx
[root@nginx ~]# chkconfig --level 35 nginx on# 关闭防火墙,开启nginx服务
[root@nginx ~]# iptables -F
[root@nginx ~]# setenforce 0
[root@nginx ~]# systemctl start nginx
[root@nginx ~]# netstat -anpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1436/nginx: master # 配置nginx.conf,开启反向代理功能。
[root@nginx ~]# vi /etc/nginx
# 添加以下upstream tomcat_server {server 172.16.1.10:8080 weight=1;server 172.16.1.11:8080 weight=1;}server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}location ~.*.jsp$ {proxy_pass http://tomcat_server;proxy_set_header Host $host;}# 重启nginx
[root@nginx ~]# systemctl restart nginx
2.3 效果验证
Nginx+Tomcat负载均衡的部署相关推荐
- Nginx+Tomcat负载均衡、动静分离集群
Nginx+Tomcat负载均衡.动静分离集群 一.Nginx实现负载均衡原理 二.Nginx 配置反向代理的主要参数 三.Nginx 动静分离实现原理和优势 1.Nginx 静态处理优势 2.动静分 ...
- Nginx+Tomcat负载均衡、动静分离
目录 一:Nginx实现负载均衡原理 二:Nginx动静分离原理 三:Nginx+Tomcat负载均衡.动静分离实验 3.1部署Nginx负载均衡器 3.1.1关闭防火墙,将安装nginx所需的软件包 ...
- Nginx+Tomcat 负载均衡集群方案
2019独角兽企业重金招聘Python工程师标准>>> Nginx+Tomcat 负载均衡集群方案 该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试 ...
- Nginx+Tomcat负载均衡
Nginx+Tomcat 负载均衡集群方案 该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试. 系统架构图 下载软件包 [root@Nginx-node1 src]# ...
- 搭建Nginx+Tomcat 负载均衡集群
Nginx+Tomcat 负载均衡集群 一. 实验拓扑: 二. 实验要求: 1. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar ...
- Nginx+Tomcat负载均衡和动静分离理论实操详解来袭!
文章目录 一:关于动静分离和负载均衡介绍 1.1:Nginx+Tomcat的动静分离 1.2:Nginx+Tomcat的负载均衡 1.3:Nginx配置反向代理的主要参数 二:Nginx+Tomcat ...
- nginx 上传文件 405_今天教大家Nginx+tomcat负载均衡群集如何配置
实验环境如下 这里需要准备4台服务器(1台nginx.2台tomcat做负载.一台MySQL做数据存储) 准备软件包如下: nginx配置(172.16.1.54) 1.安装依赖包 yum -y in ...
- Nginx+Tomcat负载均衡、动静分离,4层代理,7层代理
一:7层反向代理 Nginx 服务器:192.168.52.200:80 Tomcat服务器1:192.168.52.201:80 Tomcat服务器2:192.168.52.108:8080 192 ...
- Nginx + Tomcat 负载均衡集群配置
摘要 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 已经因为它的稳定性.丰 ...
最新文章
- 2017前端开发者必学清单
- 音乐播放器的实现-音乐文件的获取(1)
- 3.4.3 后退N帧协议(GBN)
- UA MATH636 信息论9 Reed-Solomon Code
- Win10下MySQL5.7.20 Mysql(64位)解压版安装及bug修复
- 鸿蒙发布的意义,华为鸿蒙正式发布!“鸿蒙”是什么意思?
- boost::range_const_iterato相关的测试程序
- 社交网络初探——链路预测
- body-content取值的意义
- python_开发环境介绍_交互模式使用_IDE介绍和使用---python工作笔记010
- 什么是缩量、放量、堆量
- HAUT校赛--最大奇子段和
- react开发教程(九)redux基础
- Nuget私有服务搭建实战
- 深入分析自定义表单验证与Cookies
- 深入浅出的模型压缩:你一定从未见过如此通俗易懂的Slimming操作
- 杨柳目-杨柳科-杨属-杨树:杨树
- 地理位置数据存储方案——Redis GEO
- 【整理】嵌入式系统的各种常见外设
- LeetCode hot-100 简单and中等难度,41-50.
热门文章
- LL(1)预测分析程序
- txt文件所有大写字母转小写代码
- 利用深度学习辅助皮肤病诊断
- appstore上架助手
- 智慧教室解决方案-最新全套文件
- 基于soap 的 python web services 服务开发指南
- 为什么理想电流源的等效内阻是无限大
- linux禁止软件连接指定网站,利用iptables来配置linux禁止所有端口登陆和开放指定端口...
- Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-buil
- Python----凯撒密码、将字符转换成ASCLL函数、将ASCLL码转换成字符函数