Nginx+Tomcat负载均衡集群安装配置案例详解

目录
  • 前言
    • 一、Nginx+Tomcat
    • 二、配置Nginx服务器
    • 三、部署Tomcat应用服务器
  • 总结

前言

介绍Tomcat及Nginx+Tomcat负载均衡集群,Tomcat的应用场景,然后重点介绍Tomcat的安装配置。Nginx+Tomcat负载均衡集案列是应用于生产环境的一套可靠的Web站点解决方案。

一、Nginx+Tomcat

通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善Web站点架构。

Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接数的相应,拥有强大的静态资源的处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

部署环境

主机 操作系统 IP地址 主要软件

Nginx服务器


CentOS 7.4 x86_64


192.168.196.146


nginx-1.12.2.tar.gz


Tomcat服务器1


CentOS 7.4 x86_64


192.168.196.147


①apache-tomcat-9.0.16.tar.gz / ②jdk-8u201-linux-x64.rpm


Tomcat服务器2


CentOS 7.4 x86_64


192.168.196.153


①apache-tomcat-9.0.16.tar.gz / ② jdk-8u201-linux-x64.rpm

二、配置Nginx服务器

1.关闭防火墙相关服务

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0

[root@localhost ~]# vim /etc/resolv.conf
nameserver 114.114.114.114

2.安装依赖包

[root@localhost ~]# yum install -y gcc gcc-c++ pcre-devel zlib-devel make

3.编译安装Nginx

[root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz -C /opt/

[root@localhost ~]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

[root@localhost nginx-1.12.2]# make && make install

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@localhost ~]# useradd -M -s /sbin/nologin nginx

4.添加Nginx系统服务

[root@localhost ~]# vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service	 #赋权,除了root以外的用户都不能修改
[root@localhost ~]# systemctl start nginx.service
[root@localhost ~]# systemctl enable nginx.service

5.网页测试

三、部署Tomcat应用服务器

1.实施准备

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# setenforce 0

2.安装JDK,配置Java环境

[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm

3.设置JDK环境

[root@localhost ~]# vim /etc/profile
...
#插入三行内容
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

[root@localhost ~]# source /etc/profile

4.安装配置Tomcat

[root@localhost ~]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt/
[root@localhost ~]# cd /opt/
[root@localhost opt]# mv apache-tomcat-9.0.16/ /usr/local/tomcat

5. 优化管理

[root@localhost ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@localhost ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

6.启动服务startup.sh

Tomcat1的配置

1.创建一个测试目录

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test      

2.动态页面的配置

[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page </title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />   #大约160行插入
...

[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh

Tomcat2配置

1.创建一个测试目录

[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test    

2.动态页面的配置

[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page </title>
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
...
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />   #大约160行插入
...

[root@localhost ~]# shutdown.sh
[root@localhost ~]# startup.sh

3.nginx准备静态页面

[root@localhost ~]# echo '<html><body><h1>静态界面...</h1></body></html>' > /usr/local/nginx/html/index.html
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
...
upstream tomcat_server {
        server 192.168.192.147:8080 weight=1;
        server 192.168.192.153:8080 weight=1;
}

location ~ .*\.jsp$ {			 #把nginx接收到的客户端的ip地址赋值给跳转到tomcat请求中的源ip;识别客户的真实ip,并且赋值与跳转
        proxy_pass http://tomcat_server;
        proxy_set_header HOST $host;	##设定后端的web服务器接收到的请求访问的主机名(域名或ip、端口),默认host的值为proxy_pass直连设置的主机名
        proxy_set_header X-Real-IP $remote_addr;	#把$remote_addr复制给X-Real-IP(自定义),来回去源IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;	#在nginx最为代理服务器时,设置的IP列表,会把经过的及其ip,代理及其ip都记录下来
}
...

[root@localhost ~]#systemctl restart nginx.service

4.网页测试效果

总结

可将两个或多个Tomcat server 放到 Nginx 的 upstream 中组成一个负载均衡集群,然后通过 proxy_pass 这种 Web 代理的方式在 location 中设置集群站点,然后再通过 weight 值来分别对 Tomcat server 进行权重的设置。

在生产环境中,Tomcat server 的硬件配置可能不尽相同,可以通过修改相应服务器的 weight 值,对配置较高或配置较低的服务器的访问请求进行分配控制

到此这篇关于Nginx+Tomcat负载均衡集群安装配置案例详解的文章就介绍到这了,更多相关Nginx Tomcat负载均衡集群内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    一.    目标实现高性能负载均衡的Tomcat集群: 二.步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2: 3.然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml: 共需修改3处端口: 当然第二台Tomcat也一样,如下图: 4.然后启动两个Tomcat,并访问

  • Nginx+Tomcat高性能负载均衡集群搭建教程

    Nginx是一个高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.其占有内存少,并发能力强,在同类型的网页服务器中表现较好.Nginx可以在大多数Unix Linux OS上编译运行,并有Windows移植版.一般情况下,对于新建站点,建议使用最新稳定版作为生产版本. 单个Tomcat最大支持在线访问是500左右,要通知支持更多的访问量一个Tomcat就没法做到了.在这里我们采用集群部署方式,使用多个Tomcat,反向代理使用Nginx. 架构如下: 准备工作 a

  • 基于Docker部署Tomcat集群、 Nginx负载均衡的问题小结

    写在前面 看完Dokcer相关的书籍,正好有个项目要这样搞,所以自己练习一下. 当作一百世一样.这里的道理很明白:我思故我在,既然我存在,就不能装作不存在.无论如何,我要为自己负起责任.--王小波<三十而立> 结构图: 这里仅作为一种学习,一般这种负载的话,Nginx是放到主机侧的, JavaWeb(Tomcat)应用放到容器里. 效果 新建文件夹. D=uag;mkdir $D;cd $D;mkdir uag_nginx uag_tomcat8; ls uag_nginx uag_tomca

  • 详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

    Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器.也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能.而最常见的就是使用Nginx实现负载均衡. Nginx与其他服务器的性能比较: Tomcat服务器面向Java语言,是重量级的服务器,而Nginx是轻量级的服务器.Apache服务器稳定.开源.跨平台,但是Apache服务器不支持高并发,Nginx能支持处理百万级的TC

  • Nginx+Tomcat负载均衡集群的实现示例

    目录 引言 一.案例概述 二.环境部署 三.Nginx 主机安装 四.Tomcat 安装及配置 1. 安装 Tomcat 2. Tomcat 服务器1配置 3. Tomcat 服务器2配置 五.Nginx server 配置 六.验证结果 总结 引言 通常情况下,一个 Tomcat 站点由于可能出现单点故障以及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境中,所以需要一套更可靠的解决方案来完善 Web 站点架构. 一.案例概述 Nginx 是一款非常优秀的 http 服务器软件,它

  • Nginx+tomcat负载均衡集群的实现方法

    实验环境如下 这里需要准备4台服务器(1台nginx.2台tomcat做负载.一台MySQL做数据存储) 准备软件包如下: 软件包地址连接: 链接: https://pan.baidu.com/s/1Zitt5gO5bDocV_8TgilvRw 提取码: ny1r nginx配置(172.16.1.54) 1.安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c++ 2.创建nginx运行用户 useradd -M -s /sbin/nolog

  • Nginx+Tomcat负载均衡集群安装配置案例详解

    目录 前言 一.Nginx+Tomcat 二.配置Nginx服务器 三.部署Tomcat应用服务器 总结 前言 介绍Tomcat及Nginx+Tomcat负载均衡集群,Tomcat的应用场景,然后重点介绍Tomcat的安装配置.Nginx+Tomcat负载均衡集案列是应用于生产环境的一套可靠的Web站点解决方案. 一.Nginx+Tomcat 通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完

  • Red Hat Linux,Apache2.0+Weblogic9.2负载均衡集群安装配置

    ************************************************************************************************************************ JDK安装步骤 1. 以root身份登录系统 2. 到java.sun.com去下载JDK1.5 for LINUX的rpm,是个jdk-1_5_0_11-linux-i586-rpm.bin的文件. 3. 通过chmod +x jdk-1_5_x-rc-l

  • Nginx搭建负载均衡集群的实现

    (1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策略 nginx的负载均衡用于upstream模板定义的后端服务器列表中选取一台服务器接收用户的请求.一个基本的upstream模块如下: upstream [服务器组名称]{ server [IP地址]:[端口号]; server [IP地址]:[端口号]; .... } 在upstream模块配置

  • Nginx+Tomcat负载均衡及动静分离群集的实现

    目录 Nginx配置反向代理的主要参数 动静分离原理 Nginx静态处理优势 配置Nginx+Tomcat负载均衡,动静分离 配置Nginx负载均衡器 部署两台Tomcat 动静分离配置 配置动态页面请求 Nginx负载均衡模式 Nginx配置反向代理的主要参数 upstream服务池名{}配置后端服务器池,以提供响应数据 proxy_pass http://服务池名配置将访问请求转发给后端服务器池的服务器处理 动静分离原理 服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Ng

  • Nginx Tomcat负载均衡动静分离原理解析

    目录 nginx实现负载均衡原理 nginx动静分离原理 nginx静态处理优势 nginx+tomcat动静分离.负载均衡配置 1.准备三台服务器,nginx作为负载均衡器,tomcat作为应用服务器 2.部署nginx负载均衡器 3.部署两台tomcat应用服务器 4.动静分离配置 5.测试效果 nginx负载均衡中4层代理和7层代理 4层代理和7层代理 代理原理 优缺点对比 nginx支持的代理类型 nginx负载均衡模式 Nginx 四层代理配置 nginx实现负载均衡原理 Nginx实

随机推荐