配置Nginx+Tomcat负载均衡集群

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

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。本篇博客将配置Nginx+Tomcat负载均衡集群



Tomcat的应用场景

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的,通常是作为一个Servlet和JSP容器,单独运行在后端,如下图所示:

杨书凡17.png


案例:某公司发布V3版移联建站管理系统,该项目为Java语言开发的Web站点,需要一套可靠的解决方案来完善Web站点架构。我们以Nginx作为负载均衡器,Tomcat作为应用服务器的设置方法,配置负载集群,来提升整个站点的负载并发能力


1. 配置第一台Tomcat服务器

(1)安装JDK,Tomcat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost ~] # service iptables stop               //关闭防火墙
[root@localhost ~] # tar zxf jdk-7u65-linux-x64.gz       //安装JDK,配置Java环境
[root@localhost ~] # mv jdk1.7.0_65/ /usr/local/java     //移动jdk文件夹到/usr/local下,重命名为java
[root@localhost ~] # vim /etc/profile.d/java.sh          //建立脚本,使/usr/local/java/bin添加到PATH环境变量中
export  java_home= /usr/local/java
export  PATH=$PATH:$java_home /bin
[root@localhost ~] # sh /etc/profile.d/java.sh           //执行脚本,使其立即生效         
[root@localhost ~] # java -version                       //查看Java版本号,与之前安装的一致
java version  "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
 
[root@localhost ~] # tar zxf apache-tomcat-7.0.54.tar.gz      //安装Tomcat
[root@localhost ~] # mv apache-tomcat-7.0.54 /usr/local/tomcat      //将文件移动到/usr/local下,重命名为tomcat
[root@localhost ~] # /usr/local/tomcat/bin/startup.sh               //启动tomcat服务
[root@localhost ~] # netstat -anpt | grep 8080                      //Tomcat默认运行在8080端口
tcp        0      0 :::8080                     :::*                        LISTEN      5344 /java

(2)打开浏览器,查看配置启动成功
杨书凡18.png


(3)建立java的Web站点,存放网站文件,并制作测试文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost ~] # mkdir -p /web/webapp              //创建站点目录
[root@localhost ~] # vim /web/webapp/index.jsp         //编写测试文件
<html>
   < head >
     <title> ysf< /title >
   <body>
     <% out.println( "this is 192.168.1.2" );%>
   < /body >
< /html >
[root@localhost ~] # vim /usr/local/tomcat/conf/server.xml    //修改主配置文件
       <Host name= "localhost"   appBase= "webapps"
             unpackWARs= "true"  autoDeploy= "true" >
             <Context docBase= "/web/webapp"  path= ""  reloadable= "false" >    // 添加以下两行
             < /Context >
                         
[root@localhost ~] # /usr/local/tomcat/bin/shutdown.sh 
[root@localhost ~] # /usr/local/tomcat/bin/startup.sh      //重启tomcat


(4)打开浏览器,验证该tomcat站点已经配置成功

杨书凡19.png





2. 配置第二台Tomcat服务器

    第二台的配置方法与第一台一样,我就不在重复了

杨书凡20.png


3. Nginx服务器配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@localhost ~] # service iptables stop           //关闭防火墙
[root@localhost ~] # yum -y install pcre-devel zlib-devel openssl-devel      //安装相关软件包
[root@localhost ~] # useradd -M -s /sbin/nologin nginx          //创建运行nginx服务的程序用户
[root@localhost ~] # tar zxf nginx-1.6.0.tar.gz -C /usr/src/         
[root@localhost ~] # cd /usr/src/nginx-1.6.0/
[root@localhost nginx-1.6.0] # ./configure --prefix=/usr/local/nginx     //指定安装
--user=nginx --group=nginx                  // 指定运行的用户和组
--with- file -aio                             // 启用文件修改支持
--with-http_stub_status_module              // 启用状态统计
--with-http_gzip_static_module              // 启用 gzip 静态压缩
--with-http_flv_module                      // 启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_ssl_module                      // 启用SSL模块
[root@localhost nginx-1.6.0] # make && make install
 
[root@localhost nginx-1.6.0] # vim /usr/local/nginx/conf/nginx.conf      //修改配置文件
upstream tomcat_server {                     // 在http{…}内添加以下代码,设定负载均衡的服务器列表
         server 192.168.1.2:8080 weight=1;         //weight 参数代表权值,权值越高被分配到的越大
         server 192.168.1.3:8080 weight=1;
      }
……省略部分内容
         location / {                             // 在server{…}的location/{…}加入一行
             root   html;
             index  index.html index.htm;
             proxy_pass      // 加入此行,代理前面设定的列表中服务器
         }
 
[root@localhost nginx-1.6.0] # /usr/local/nginx/sbin/nginx -t        //测试配置文件是否正确
nginx: the configuration  file  /usr/local/nginx/conf/nginx .conf syntax is ok
nginx: configuration  file  /usr/local/nginx/conf/nginx .conf  test  is successful
[root@localhost nginx-1.6.0] # /usr/local/nginx/sbin/nginx           //开启nginx服务
[root@localhost nginx-1.6.0] # netstat -anpt | grep nginx            //查看nginx服务的端口号及PID进程号
tcp        0      0 0.0.0.0:80          0.0.0.0:*           LISTEN      4619 /nginx


4. 测试负载均衡效果

    打开浏览器进行测试,可以看到权重相同,页面反复在以下两个页面来回切换

杨书凡21.png











本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/2062649,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
2月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
303 1
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
261 18
|
2月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
325 17
|
3月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
181 0
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
169 1
|
负载均衡 应用服务中间件 nginx
百度搜索:蓝易云【Nginx和tomcat实现负载均衡教程】
至此,你已经成功地使用Nginx和Tomcat实现了负载均衡。Nginx将根据配置的负载均衡策略将客户端请求分发到多个Tomcat服务器上,以提高系统的性能和可用性。请注意,在实际生产环境中,还需要进行其他配置和优化,如健康检查、会话保持等,以满足具体的需求。
120 0
|
6月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
270 11
|
负载均衡 Java 应用服务中间件
Nginx+Tomcat负载均衡、动静分离群集
Nginx+Tomcat负载均衡、动静分离群集
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400

热门文章

最新文章