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 //解压Nginxcd /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负载均衡群集的主要内容,如果未能解决你的问题,请参考以下文章