文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

前言

介绍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负载均衡集群内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯