搭建Nginx+Tomcat 负载均衡集群

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介:

实验拓扑:

wKiom1WXm2yynI5BAAC65Hm6F9E879.jpg

 

实验要求:

  客户访问192.168.10.10,第一次或者第一个请求将请求交给10.101,第二次或者第二个请求交给10.102。实现两台服务器负载,多台的搭建方法相同。

试验环境:

主机

操作系统

所需软件

Nginx服务器

rhel 6.5 x86_64

nginx-1.6.0.tar.gz

Tomcat服务器1

CentOS 6.5   x86_64

apache-tomcat-7.0.54.tar.gz  jdk-7u65-linux-x64.gz

Tomcat服务器2

CentOS 6.5   x86_64

2.       此处为了方便实验,将3linux主机和1台真机客户机连在一个局域网,网卡都连接到VMnet1

wKioL1WXnUSSE6aEAAAit9NcGEY666.jpg

3.IP地址如拓扑图

配置文件:

clientIP配置:

wKioL1WXnVDgICy5AAB6BAztD9A198.jpg

2.       Tomcat1服务器的配置:

1)     IP地址配置与通信

wKioL1WXnV6A_mQDAABpN2_zahg924.jpg

Ping Tomcat2服务器

wKioL1WXnWjSXZJ5AACvQH5IVoQ104.jpg

Ping Nginx服务器

wKiom1WXm7OR2QppAACs6GAcI6g139.jpg

搭建java环境

[root@localhost~]# service iptables stop  //关闭防火墙

[root@localhost~]# setenforce 0  //关闭安全linux

wKiom1WXm76w6eHiAABb86Gfi7c214.jpg

[root@localhost~]# cd /opt

[root@localhostopt]# tar xzvf jdk-7u65-linux-x64.gz

[root@localhostopt]# ls

wKioL1WXnZDTQd35AABVC_4Tmk8251.jpg

 

[root@localhostopt]# mv jdk1.7.0_65/ /usr/local/java

[root@localhostopt]# vi /etc/profile.d/java.sh  //建立java.sh脚本:设置java根目录,在PATH环境变量中添加javabin目录

wKiom1WXm9PyWOTGAAA8ee8Jcg4832.jpg

 

[root@localhost opt]# yum remove java  //删除系统自带的java程序       

[root@localhostopt]# source /etc/profile.d/java.sh  //运行脚本

[root@localhostopt]# java –version  //查看java版本

wKiom1WXnBjCE4FTAAByG0vfJ1c359.jpg

搭建Tomcat

[root@localhostopt]# tar xzvf apache-tomcat-7.0.54.tar.gz

[root@localhostopt]# ls

wKioL1WXnfDA_HcxAABeOqrvh7E482.jpg

 

[root@localhostopt]# mv apache-tomcat-7.0.54 /usr/local/tomcat7

[root@localhostopt]# /usr/local/tomcat7/bin/startup.sh  //启动tomcat

[root@localhostopt]# netstat -anpt | grep 8080

wKiom1WXnDDhAkPZAABFrWk_1W4050.jpg

 

 

wKioL1WXngSS_YYzAAC_R7zB9oM197.jpg

 

搭建javaweb站点

[root@localhostopt]# mkdir -p /web/webapp1

[root@localhostopt]# vi /web/webapp1/index.jsp  //建立测试页

wKioL1WXniWxb3zZAAB1yeGQhSE642.jpg

[root@localhostopt]# vi /usr/local/tomcat7/conf/server.xml //修改配置文件:定义一个虚拟主机,指定web网站根目录

wKioL1WXnkyQGw1fAABf7b8rSHA780.jpg

[root@localhostopt]# /usr/local/tomcat7/bin/shutdown.sh  //

[root@localhostopt]# /usr/local/tomcat7/bin/startup.sh   //重启Tomcat

 

 

 wKioL1WXnoTQGWwAAACS8WKxEFY569.jpg


3.       依此搭建Tomcat2服务器

 IP地址配置与通信

wKioL1WXntSwjJXkAABcRGJmKDI234.jpg

Ping Nginx服务器  

wKioL1WXnuDS-RlqAACvayrftNE184.jpg

[root@localhost~]# service iptables stop

[root@localhost~]# setenforce 0

 

wKioL1WXnurjR7yZAACMgOgmylw001.jpg

 

 

 

 

 

4.       Nginx服务器的配置:

1)     IP地址配置与通信

wKiom1WXnTqjTSF5AABiaRB2GSs154.jpg

 

搭建Nginx服务器

[root@localhostnginx-1.6.0]# service iptables stop

[root@localhostnginx-1.6.0]# setenforce 0

wKiom1WXnUiy1RZdAAA6aYsp9ys399.jpg

 

[root@localhostopt]# yum install -y \   //安装相关软件包

> pcre-devel \

> zlib-devel \

> openssl-devel

 

[root@localhostopt]# yum -y install \   //安装编译工具

> gcc \

> gcc-c++ \

> make

 

[root@localhostopt]# useradd www -s /bin/false   //创建nginx用户www,禁止登陆shell

[root@localhostopt]# tar xzvf nginx-1.6.0.tar.gz

[root@localhostopt]# ls

wKioL1WXn0Cwy-PnAAA9kW0Rz6w024.jpg

 

[root@localhostopt]# cd nginx-1.6.0

 

[root@localhostnginx-1.6.0]# ./configure \ 

>--prefix=/usr/local/nginx \

> --user=www \

> --group=www \

> --with-file-aio\

>--with-http_stub_status_module \

>--with-http_gzip_static_module \

>--with-http_flv_module \

>--with-http_ssl_module

 

[root@localhostnginx-1.6.0]# make

[root@localhostnginx-1.6.0]# make install

[root@localhostnginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/  //为了便于管理,为主程序nginx创建链接

[root@localhostnginx-1.6.0]# vi /usr/local/nginx/conf/nginx.conf

wKioL1WXn1myjIYGAABpAsAQcU4657.jpg

 如果有多台服务器,就照格式向下写。

设置tomcat负载均衡服务器组

wKiom1WXnZjRzKxeAABIcpv6Trc003.jpg

nginx的默认站点通过proxy_pass方式代理到tomcat_server负载均衡服务器组上

 

[root@localhostnginx-1.6.0]# nginx –t  //检查配置文件

wKioL1WXn2zStuZWAABtkVYFLK0513.jpg

[root@localhostnginx-1.6.0]# nginx  //启动nginx

[root@localhostnginx-1.6.0]# netstat -anpt | grep 80

 

wKiom1WXnazRYSgzAABcKbSWUuI331.jpg

 

结果验证:

wKioL1WXn4Dzym63AACEino8HSI618.jpg

 

 

刷新

 

wKiom1WXncDCLqTxAACACPFa5-Q625.jpg

 

再刷新

wKiom1WXncrQDrZtAAB8qlZi4Og331.jpg


本文转自Y.weisheng 51CTO博客,原文链接:http://blog.51cto.com/yuan2/1670924,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
10月前
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
263 4
|
7月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
215 21
|
7月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
198 14
|
7月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
272 11
|
8月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
8月前
|
Kubernetes 安全 应用服务中间件
IngressNightmare:Ingress Nginx 再曝5个安全漏洞,可接管你的 K8s 集群
是否还记得 2022 年 K8s Ingress Nginx 披露了的 3 个高危安全漏洞(CVE-2021-25745, CVE-2021-25746, CVE-2021-25748),并在那一年宣布停止接收新功能 PR,专注修复并提升稳定性。
|
9月前
|
负载均衡 算法 应用服务中间件
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
519 5
|
9月前
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?
|
12月前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
768 9