这里写目录标题

  • 一、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负载均衡的部署相关推荐

  1. Nginx+Tomcat负载均衡、动静分离集群

    Nginx+Tomcat负载均衡.动静分离集群 一.Nginx实现负载均衡原理 二.Nginx 配置反向代理的主要参数 三.Nginx 动静分离实现原理和优势 1.Nginx 静态处理优势 2.动静分 ...

  2. Nginx+Tomcat负载均衡、动静分离

    目录 一:Nginx实现负载均衡原理 二:Nginx动静分离原理 三:Nginx+Tomcat负载均衡.动静分离实验 3.1部署Nginx负载均衡器 3.1.1关闭防火墙,将安装nginx所需的软件包 ...

  3. Nginx+Tomcat 负载均衡集群方案

    2019独角兽企业重金招聘Python工程师标准>>> Nginx+Tomcat 负载均衡集群方案 该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试 ...

  4. Nginx+Tomcat负载均衡

    Nginx+Tomcat 负载均衡集群方案 该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试. 系统架构图 下载软件包 [root@Nginx-node1 src]# ...

  5. 搭建Nginx+Tomcat 负载均衡集群

    Nginx+Tomcat 负载均衡集群 一. 实验拓扑: 二. 实验要求: 1. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar ...

  6. Nginx+Tomcat负载均衡和动静分离理论实操详解来袭!

    文章目录 一:关于动静分离和负载均衡介绍 1.1:Nginx+Tomcat的动静分离 1.2:Nginx+Tomcat的负载均衡 1.3:Nginx配置反向代理的主要参数 二:Nginx+Tomcat ...

  7. nginx 上传文件 405_今天教大家Nginx+tomcat负载均衡群集如何配置

    实验环境如下 这里需要准备4台服务器(1台nginx.2台tomcat做负载.一台MySQL做数据存储) 准备软件包如下: nginx配置(172.16.1.54) 1.安装依赖包 yum -y in ...

  8. 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 ...

  9. Nginx + Tomcat 负载均衡集群配置

    摘要 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 已经因为它的稳定性.丰 ...

最新文章

  1. 2017前端开发者必学清单
  2. 音乐播放器的实现-音乐文件的获取(1)
  3. 3.4.3 后退N帧协议(GBN)
  4. UA MATH636 信息论9 Reed-Solomon Code
  5. Win10下MySQL5.7.20 Mysql(64位)解压版安装及bug修复
  6. 鸿蒙发布的意义,华为鸿蒙正式发布!“鸿蒙”是什么意思?
  7. boost::range_const_iterato相关的测试程序
  8. 社交网络初探——链路预测
  9. body-content取值的意义
  10. python_开发环境介绍_交互模式使用_IDE介绍和使用---python工作笔记010
  11. 什么是缩量、放量、堆量
  12. HAUT校赛--最大奇子段和
  13. react开发教程(九)redux基础
  14. Nuget私有服务搭建实战
  15. 深入分析自定义表单验证与Cookies
  16. 深入浅出的模型压缩:你一定从未见过如此通俗易懂的Slimming操作
  17. 杨柳目-杨柳科-杨属-杨树:杨树
  18. 地理位置数据存储方案——Redis GEO
  19. 【整理】嵌入式系统的各种常见外设
  20. LeetCode hot-100 简单and中等难度,41-50.

热门文章

  1. LL(1)预测分析程序
  2. txt文件所有大写字母转小写代码
  3. 利用深度学习辅助皮肤病诊断
  4. appstore上架助手
  5. 智慧教室解决方案-最新全套文件
  6. 基于soap 的 python web services 服务开发指南
  7. 为什么理想电流源的等效内阻是无限大
  8. linux禁止软件连接指定网站,利用iptables来配置linux禁止所有端口登陆和开放指定端口...
  9. Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-buil
  10. Python----凯撒密码、将字符转换成ASCLL函数、将ASCLL码转换成字符函数