Nginx+Tomcat负载均衡群集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx+Tomcat负载均衡群集相关的知识,希望对你有一定的参考价值。

通常情况下,单个Tomcat站点由于可能出现单点故障而无法应付客户复杂多样的请求,所以需要结合nginx强大的处理并发连接能力,将Nginx作为负载均衡器,用于调用Tomcat服务器,从而实现负载均衡群集。

Nginx+Tomcat网站拓扑架构

技术分享图片

实验环境

主机 操作系统 IP地址 主要软件
Nginx服务器 Redhat6.5 192.168.100.107 Nginx-1.12
Tomcat服务器1 Redhat6.5 192.168.100.109:8080 ①jdk-8u91 ②apache-tomcat-8.5.16
Tomcat服务器2 Redhat6.5 192.168.100.109:8080 ①jdk-8u91 ②apache-tomcat-8.5.16

Nginx服务器配置

手动编译Nginx时需要检查依赖包是否存在,然后安装所需依赖包:

yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y

解压安装Nginx:

useradd -s /sbin/false www //添加Nginx系统账户
tar zxvf nginx-1.12.0.tar.gz -C /opt //解压Nginx

cd /opt/nginx-1.12.0/

./configure --prefix=/usr/local/nginx   //指定安装路径
--user=www                 //指定用户
--group=www                //指定组  
--with-file-aio            //启用文件修改支持
--with-http_stub_status_module         //启用状态统计
--with-http_gzip_static_module   //启用gzip静态压缩
--with-http_flv_module           //启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_ssl_module   //启用SSL模块

编辑Nginx主配置文件,让Nginx可以调度提供服务的Tomcat服务器:

vim /usr/local/nginx/conf/nginx.conf

keepalive_timeout  65;
    #gzip  on;
    upstream tomcat_server {                //添加服务器地址池,配置权重为1;
              server 192.168.100.109:8080 weight=1;
              server 192.168.100.111:8080 weight=1;
            }
(......省略代码)            
location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat_server;   //添加行,调用前面地址池名称

/usr/local/nginx/sbin/nginx -t //检查配置文件
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx //启动Nginx服务
netstat -ntap | grep nginx //查看服务是否开启
service iptables stop
setenforce 0

Tomcat服务器配置

1、配置Java环境

tar zxvf jdk-8u91-linux-x64.gz -C /opt 解压jdk软件包
mv jdk1.7.0_65/ /usr/local/java 设置工作目录
cd /etc/profile.d/ 配置环境变量
vim java.sh 配置环境变量脚本

export JAVA_HOME=/usr/local/java     //设置Java根目录//
export PATH=$PATH:$JAVA_HOME/bin     //在PATH环境变量中添加

2、安装配置Tomcat1

tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
/usr/local/tomcat8/bin/startup.sh 启动tomcat
netstat -ntap | grep 8080 监听8080端

创建测试页:

mkdir -pv /web/webapp1 //创建web目录//
vim /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>JSP test1 page</title>
 </head>
 <body>
  <% out.println("Welcome to test site,http://www.test1.com");%>  
 </body>
</html>

vim /usr/local/tomcat7/conf/server.xml
编辑Tomcat主配置文件,添加首页内容站点

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

<Context docBase="/web/webapp1" path="" reloadable="false">     //添加如下部分,以及站点目录
</Context>

配置完成后访问其服务:
技术分享图片

3、安装配置Tomcat2

Tomcat配置与Tomcat1服务器完全一致,此处为了区分当Nginx服务器调度时是两个不同的Tomcat服务器,需要在Tomcat测试页中修改内容为test2;
技术分享图片

4、测试负载均衡效果

当访问Nginx服务器时,Nginx服务会调用后面提供服务的Tomcat服务器,为了实现负载均衡,每次调用的服务器并不是同一个服务器:
技术分享图片
技术分享图片

以上是关于Nginx+Tomcat负载均衡群集的主要内容,如果未能解决你的问题,请参考以下文章

Nginx+Tomcat负载均衡群集

部署Nginx+Tomcat负载均衡群集

Nginx+Tomcat负载均衡群集

Nginx + Tomcat 实现 负载均衡 和 动静分离群集

Tomcat部署+Nginx负载均衡群集

Nginx+Tomcat负载均衡群集+反向代理