nginx+tomcat集群搭建

一、Nginx负载均衡配置,常用策略,场景及特点简介

Nginx负载均衡配置及策略:

  • 轮询(默认)

    • 优点:实现简单

    • 缺点:不考虑每台服务器的处理能力

    • 配置示例如下:

      upstream www.xxx.com {

      # 需要负载的server列表server www.xxx.com:8080;

      server www.xxx.com:9080;

      }

  • 权重,使用的较多的策略

    • 优点:考虑了每台服务器处理能力的不同,哪台机器性能高就给哪台机器的权重高一些

    • 配置示例如下:

      upstream www.xxx.com {

      # 需要负载的server列表,weight表示权重,weight默认为1,如果多个配置权重的节点,比较相对值server www.xxx.com:8080 weight=15;

      server www.xxx.com:9080 weight=10;

      }

  • ip hash

    • 优点:能实现同一个用户始终访问同一个服务器

    • 缺点:根据 ip hash 不一定平均

    • 配置示例如下:

      upstream www.xxx.com {

      ip_hash;

      # 需要负载的server列表

      server www.xxx.com:8080;

      server www.xxx.com:9080;

      }

  • url hash (第三方插件)

    • 优点:能实现同一个服务访问同一个服务器,也就是根据url进行负载

    • 缺点:和ip hash一样,根据 url hash 分配请求不一定平均,请求频繁的url会请求到同一台服务器上

    • 配置示例如下(需要事先安装插件)

      upstream www.xxx.com {

      # 需要负载的server列表server www.xxx.com:8080;

      server www.xxx.com:9080;

      hash $request_uri;

      }

  • fair (第三方插件)

    • 特点:按后端服务器的响应时间来分配请求,响应时间短的优先分配

    • 配置示例如下(需要事先安装插件)

      upstream www.xxx.com {

      # 需要负载的server列表

      server www.xxx.com:8080;

      server www.xxx.com:9080;

      fair;

      }

一些负载均衡参数简介:

upstream www.xxx.com {

ip_hash;

# 需要负载的server列表

server www.xxx.com:8080 down; # down表示当前的server暂时不参与负载

server www.xxx.com:9080 weight=2; # weight默认值为1,weight的值越大,负载的权重就越大

server www.xxx.com:7080 backup; # 其他所有的非backup机器,在down掉或者很忙的时候,才请求backup机器,也就是一个备用机器

server www.xxx.com:6080;

}

 

二、Nginx+Tomcat搭建集群

在上文中我们已经介绍了如何在单机上部署多个Tomcat实例,本节将介绍如何安装Nginx,并且使用Nginx+Tomcat搭建集群。

1.到nginx官网上获取下载链接,然后到Linux上下载并解压编译nginx:

[root@study-01 ~]# cd /usr/local/src/

[root@study-01 /usr/local/src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz

[root@study-01 /usr/local/src]# tar -zxvf nginx-1.14.0.tar.gz

[root@study-01 /usr/local/src]# cd nginx-1.14.0

[root@study-01 /usr/local/src/nginx-1.14.0]# ./configure --prefix=/usr/local/nginx

[root@study-01 /usr/local/src/nginx-1.14.0]# echo $?

0

[root@study-01 /usr/local/src/nginx-1.14.0]# make && make install

[root@study-01 /usr/local/src/nginx-1.14.0]# echo $?

0

[root@study-01 /usr/local/src/nginx-1.14.0]# cd ../../nginx/

[root@study-01 /usr/local/nginx]# ls # 安装完成

conf html logs sbin

[root@study-01 /usr/local/nginx]#

2.修改nginx的主配置文件,添加如下配置:

        【1】在http内部添加  

                upstream mServer{

                server 127.0.0.1:8080 weight=1; #权重可自行修改

                server 127.0.0.1:9080 weight=2; #权重可自行修改

                }

 

        【2】在http内部的server中添加如下:

                location / {

                proxy_pass http://mServer; #即上面配置的mServer

                proxy_redirect default;

                }

 3.检查nginx配置文件,显示没问题则启动nginx服务:

[root@study-01 /usr/local/nginx/conf/vhost]# cd ../../sbin/

[root@study-01 /usr/local/nginx/sbin]# ./nginx -t # 检查nginx配置文件

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@study-01 /usr/local/nginx/sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf # 启动nginx服务

[root@study-01 /usr/local/nginx/sbin]# netstat -lntp | grep nginx # 检查端口是否已监听

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5676/nginx: master

[root@study-01 /usr/local/nginx/sbin]# ps aux |grep nginx # 检查nginx进程是否正常

root 5676 0.0 0.0 20492 624 ? Ss 19:57 0:00 nginx: master process ./nginx -c /usr/local/nginx/conf/nginx.conf

nobody 5677 0.0 0.0 22936 3220 ? S 19:57 0:00 nginx: worker process

nobody 5678 0.0 0.0 22936 3220 ? S 19:57 0:00 nginx: worker process

root 5683 0.0 0.0 112680 976 pts/0 S+ 19:58 0:00 grep --color=auto nginx

[root@study-01 /usr/local/nginx/sbin]#

 

4.修改每个Tomcat实例的index.jsp文件内容,以便区别,方便一会验证负载均衡是否已成功生效:

[root@study-01 ~]# vim /usr/local/tomcat9-02/webapps/ROOT/index.jsp

<div id="congrats" class="curved container">

<h2>I'm Tomcat 2</h2>

</div>

[root@study-01 ~]#

5.启动两个Tomcat实例:

[root@study-01 ~]# cd /usr/local/tomcat9-01/bin/

[root@study-01 /usr/local/tomcat9-01/bin]# ./startup.sh

Using CATALINA_BASE: /usr/local/tomcat9-01

Using CATALINA_HOME: /usr/local/tomcat9-01

Using CATALINA_TMPDIR: /usr/local/tomcat9-01/temp

Using JRE_HOME: /usr/local/jdk1.8

Using CLASSPATH: /usr/local/tomcat9-01/bin/bootstrap.jar:/usr/local/tomcat9-01/bin/tomcat-juli.jar

Tomcat started.

[root@study-01 /usr/local/tomcat9-01/bin]# cd /usr/local/tomcat9-02/bin/

[root@study-01 /usr/local/tomcat9-02/bin]# ./startup.sh

Using CATALINA_BASE: /usr/local/tomcat9-02

Using CATALINA_HOME: /usr/local/tomcat9-02

Using CATALINA_TMPDIR: /usr/local/tomcat9-02/temp

Using JRE_HOME: /usr/local/jdk1.8

Using CLASSPATH: /usr/local/tomcat9-02/bin/bootstrap.jar:/usr/local/tomcat9-02/bin/tomcat-juli.jar

Tomcat started.

[root@study-01 /usr/local/tomcat9-02/bin]#

 

6.设置防火墙规则,开放80端口:

[root@study-01 ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent

success

[root@study-01 ~]# firewall-cmd --reload

success

[root@study-01 ~]#

 

7.使用浏览器进行访问(多次刷新一下页面,看页面变化),验证nginx的负载均衡是否已成功生效:

localhost/myweb/     #localhost为集群所在的主机IP地址;

 

如上,验证成功,我们配置的nginx的负载均衡成功。到此为止,我们的Tomcat集群环境就搭建完成了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值