服务=====Nginx+Tomcat 负载均衡群集

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

####实验环境  centos 6.5

####需要的安装包

jdk-7u65-linux-x64.gz

apache-tomcat-7.0.54.tar.gz

nginx-1.6.0.tar.gz


两台tomcat服务器,一台Nginx 服务器

tomcat1 的ip 192.168.1.100:8080

tomcat2 的ip 192.168.1.101:8080

Nginx 的ip 192.168.1.102


注:试验中必须关闭防火墙,selinux和安装了gcc的环境


=========================tomcat1 的配置=============================

39634f5896cf09d80f5ef8a3b69e121c.png-wh_


(1)安装JDK,配置JAVA 环境 

[root@localhost ~]# tar zxvf jdk-7u65-linux-x64.gz

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

[root@localhost ~]# vim /etc/profile.d/java.sh   #在此路径下写一个脚本,内容如下    

     export JAVA_HOME=/usr/local/java

     export PATH=$PATH:$JAVA_HOME/bin

 

[root@localhost ~]# source /etc/profile.d/java.sh   

(2)安装配置Tomcat

[root@localhost ~]# tar xf apache-tomcat-7.0.54.tar.gz 

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

[root@localhost ~]# /usr/local/tomcat7/bin/startup.sh   #启动tomcat,如下所示

Using CATALINA_BASE:   /usr/local/tomcat7

Using CATALINA_HOME:   /usr/local/tomcat7

Using CATALINA_TMPDIR: /usr/local/tomcat7/temp

Using JRE_HOME:        /usr/local/java

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

Tomcat started.

You have new mail in /var/spool/mail/root

(3)打开浏览器访问测试,http://  192.168.1.100:8080,出现如下界面则成功

3ebb44cffb48112c8b889986302e9923.png

(4)建立JAVA的WEB 站点

[root@localhost ~]# mkdir -pv /web/webapp1   #创建web页面的目录

[root@localhost ~]# vim /usr/local/tomcat7/conf/server.xml  #修改配置文件,指定路径,添加黄色区域内容

内容如下:

  <Context docBase="/web/webapp1" path="" reloadable="false">

            </Context>

b3e79942765d20965ceca3c1ad9b9d8c.png

[root@localhost ~]# vim /web/webapp1/index.jsp   #添加测试页面

内容如下:

[root@localhost java]# cat /web/webapp1/index.jsp 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

 <head>

  <title>JSP test1 page</title>

 </head>

 <body>

   <% out.println("welcome to test site,http://www.test1.com");%>

 </body>

</html>

(5)验证测试成功

打开浏览器,输入http://192.168.1.100:8080,出现如下所示

db1b527b51ffee7fd7cc7a901f454782.png

=========================Tomcat2 的配置=====================

Tomcat2 的配置方法基本同tomcat1,其中包括

(1)关闭iptables 防火墙

(2)安装JDK, 配置JAVA 环境,版本与Tomcat1 server 保持一致

(3)安装配置Tomcat,版本与Tomcat1 server 保持一致

(4)创建/web/webapp1 目录,修改Tomcat配置文件server.xml,将网站文件目录更改到/web/webapp1/路径下

(5)在/web/webapp1/路径下建立Index.jsp,为了区别测试页面index.jsp 的内容更改如下

[root@localhost ~]# cat  /web/webapp1/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

 <head>

  <title>JSP test2 page</title>

 </head>

 <body>

   <% out.println("welcome to test site,http://www.test2.com");%>

 </body>

</html>


==========================Nginx 的配置==============================

[root@localhost 桌面]# yum -y install prce-devel zlib-devel openssl-devel

[root@localhost 桌面]# groupadd www

[root@localhost 桌面]# useradd -g www www -s /bin/false

root@localhost 桌面]# mv nginx-1.6.0.tar.gz ~

[root@localhost 桌面]# cd ~

[root@localhost ~]# tar zxvf nginx-1.6.0.tar.gz 

[root@localhost ~]# cd nginx-1.6.0

[root@localhost nginx-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@localhost nginx-1.6.0]# make && make install

安装完成后编辑配置文件(前面为配置文件的行数,红色部分为添加内容)

[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf


 32     #gzip  on;

 33     upstream tomcat_server {

 34         server 192.168.1.100:8080 weight=1;

 35         server 192.168.1.101:8080 weight=2;

 36 

 37             }


 

 43 

 44         #access_log  logs/host.access.log  main;

 45 

 46         location / {

 47             root   html;

 48             index  index.html index.htm;

 49             proxy_pass   http://tomcat_server;

 50         }

 51 

 52         #error_page  404              /404.html;


为了启动方便写一个Nginx 的脚本,并把它放在环境变量中,脚本内容如下

[root@localhost init.d]# vim /etc/init.d/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
#!/bin/bash
 
#chkconfig: - 99 20
#description: Nginx Server Control Script
 
PROG= "/usr/local/nginx/sbin/nginx"
PIDF= "/usr/local/nginx/logs/nginx.pid"
case  "$1"  in 
  start)
   $PROG
   ;;
   stop)
    kill  -s QUIT $( cat  $PIDF)
   ;;
   restart)
    $0 stop
    $0 start
   ;;
   reload)
   kill  -s HUP $( cat  $PIDF)
   ;;
   *)
    echo  "Usage: $0 (start|stop|restart|reload)"
    exit  1
esac
exit  0

[root@localhost init.d]# echo "PATH=$PATH:/etc/init.d/" >> /etc/profile

[root@localhost init.d]# . /etc/profile

[root@localhost init.d]# nginx restart     #重启Nginx

测试配置文件是否正确

[root@localhost init.d]# /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


重新启动nginx 

[root@localhost init.d]# nginx restart 

[root@localhost init.d]# netstat -anpt | grep nginx

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      40041/nginx 

测试负载均衡效果

打开浏览器输入http://192.168.1.102

不断刷新浏览器测试发现权重相同,页面会反复在两个页面来回切换。



注:如果是虚拟机调到同一个wmnat中,且配置ip地址是永久的,尽量不要配临时的容易出错




本文转自 大雪儿 51CTO博客,原文链接:http://blog.51cto.com/dingxue/1975984,如需转载请自行联系原作者

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
负载均衡 算法 搜索推荐
Nginx 常用的负载均衡算法
【10月更文挑战第17天】在实际应用中,我们需要根据具体的情况来选择合适的负载均衡算法。同时,还可以结合其他的优化措施,如服务器健康检查、动态调整权重等,来进一步提高负载均衡的效果和系统的稳定性。
142 59
|
15天前
|
弹性计算 负载均衡 网络协议
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
62 9
|
1月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
26天前
|
负载均衡 算法 应用服务中间件
Nginx的负载均衡
Nginx 是一款高性能的Web服务器与反向代理服务器,支持负载均衡功能,能有效提升系统性能与可靠性。其负载均衡策略包括基于轮询和权重的分配方法,以及IP哈希、最小连接数等算法,可根据实际需求灵活选择。
87 5
|
28天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
54 3
|
1月前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
1月前
|
负载均衡 算法 应用服务中间件
Nginx 常用的负载均衡算法
【10月更文挑战第22天】不同的负载均衡算法各有特点和适用场景。在实际应用中,需要根据具体的业务需求、服务器性能和网络环境等因素来选择合适的算法。
85 3
|
2月前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
2月前
|
负载均衡 监控 应用服务中间件
除了 Nginx,还有以下一些常见的负载均衡工具
【10月更文挑战第17天】这些负载均衡工具各有特点和优势,在不同的应用场景中发挥着重要作用。选择合适的负载均衡工具需要综合考虑性能、功能、稳定性、成本等因素。
|
2月前
|
负载均衡 算法 Java
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?
尼恩,一位资深架构师,分享了关于负载均衡及其策略的深入解析,特别是基于权重的负载均衡策略。文章不仅介绍了Nginx的五大负载均衡策略,如轮询、加权轮询、IP哈希、最少连接数等,还提供了手写加权轮询算法的Java实现示例。通过这些内容,尼恩帮助读者系统化理解负载均衡技术,提升面试竞争力,实现技术上的“肌肉展示”。此外,他还提供了丰富的技术资料和面试指导,助力求职者在大厂面试中脱颖而出。
腾讯面试:说说6大Nginx负载均衡?手写一下权重轮询策略?