配置Nginx+Tomcat负载均衡集群

简介:

    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,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
19天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
24 0
|
10天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
28 0
|
17天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
11天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
18 0
|
12天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
25 0
|
21天前
|
应用服务中间件 nginx
nginx配置访问qicaitun.com强制跳转www.qicaitun.com
nginx配置访问qicaitun.com强制跳转www.qicaitun.com
9 0
|
3月前
|
负载均衡 应用服务中间件 nginx
百度搜索:蓝易云【Nginx和tomcat实现负载均衡教程】
至此,你已经成功地使用Nginx和Tomcat实现了负载均衡。Nginx将根据配置的负载均衡策略将客户端请求分发到多个Tomcat服务器上,以提高系统的性能和可用性。请注意,在实际生产环境中,还需要进行其他配置和优化,如健康检查、会话保持等,以满足具体的需求。
34 0
|
3月前
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
48 1
|
2月前
|
负载均衡 Java 应用服务中间件
|
2月前
|
负载均衡 监控 应用服务中间件
Nginx负载均衡:你的网站流量翻倍利器
Nginx负载均衡:你的网站流量翻倍利器
42 0