Nginx+Tomcat多实例负载均衡

业务需求

1、在一台服务器上创建3个Tomcat实例

2、Nginx服务器负责调度Tomcat服务器

3、它的域名是:tomcat.zjzd.cn

1、IP地址规划

172.16.30.1     Nginx

172.16.30.2     Tomcat

172.16.30.254   Windows

172.16.30.2 Tomcat

2、安装JDK并配置环境

#/etc/init.d/iptables stop
#setenforce 0
#wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz    //也可以通过百度下载
#mv jdk-7u79-linux-x64.tar.gz jdk1.7.0_79.tar.gz
#tar xf jdk1.7.0_79.tar.gz
#mkdir /usr/java/
#mv jdk1.7.0_79 /usr/java/
#vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
#source /etc/profile
#echo $JAVA_HOME

3、搭建tomcat多实例

(1)搭建第一个tomcat实例

#wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-6/v6.0.48/bin/apache-tomcat-6.0.48.tar.gz
#tar xf apache-tomcat-6.48.tar.gz
#mv apache-tomcat-6.48 /usr/local/tomcat1
#cp /usr/local/tomcat1/conf/server.xml /usr/local/tomcat1/conf/server.xml.bak
#vim /usr/local/tomcat1/conf/server.xml
<Context path="/" docBase="/data/webapps/www1" reloadable="true"/>
#mkdir -p /data/webapps/www1
#cd /data/webapss/www1/
#vim index.jsp
<html>
<body>
<h1>Tomcat 1 jsp test page</h1>
<%=new java.util.Date()%>
</body>
</html>
#/usr/local/tomcat1/bin/startup.sh
#ps -ef | grep tomcat

(2)搭建第二个tomcat实例

#cp -a /usr/local/tomcat1 /usr/local/tomcat2
#cp -a /data/webapps/www1 /data/webapps/www2
#vim /usr/local/tomcat2/conf/server.xml
<Context path="/" docBase="/data/webapps/www2" reloadable="true"/>
#vim /data/webapps/www2/index.jsp
<html>
<body>
<h1>Tomcat 2 jsp test page</h1>
<%=new java.util.Date()%>
</body>
</html>
#sed -i ‘s/8005/8006/g;s/8009/8010/g;s/8080/8081/g‘ /usr/local/tomcat2/conf/server.xml
#/usr/local/tomcat2/bin/startup.sh
#ps -ef | grep tomcat

(3)搭建第三个tomcat实例

#cp -a /usr/local/tomcat1 /usr/local/tomcat3
#cp -a /data/webapps/www1 /data/webapps/www3
#vim /usr/local/tomcat3/conf/server.xml
<Context path="/" docBase="/data/webapps/www3" reloadable="true"/>
#vim /data/webapps/www3/index.jsp
<html>
<body>
<h1>Tomcat 3 jsp test page</h1>
<%=new java.util.Date()%>
</body>
</html>
#sed -i ‘s/8005/8007/g;s/8009/8011/g;s/8080/8082/g‘ /usr/local/tomcat3/conf/server.xml
#/usr/local/tomcat3/bin/startup.sh
#ps -ef | grep tomcat

测试:http://172.16.30.2:8080  http://172.16.30.2:8081  http://172.16.30.2:8082

172.16.30.1 Nginx

4、配置Nginx负载均衡

(1)安装Nginx

#/etc/init.d/iptables stop
#setenforce 0
#useradd www
#yum install pcre pcre-devel openssl openssl-devel
#wget http://nginx.org/download/nginx-1.10.2.tar.gz
#tar -xf nginx-1.10.2.tar.gz
#cd nginx-1.10.2.tar.gz
#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-pcre
#make && make install
#/usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx 
#netstat -tunlp | grep 80

(2)配置主配置文件

#cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
#vim /usr/local/nginx/conf/nginx.conf
worker_processes  1;
error_log  logs/error.log;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    include domains/*;     //虚拟主机目录
}

(3)配置负载均衡虚拟主机配置文件

#mkdir /usr/local/nginx/conf/domains
#vim  /usr/local/nginx/conf/domains/tomcat.zjzd.cn
upstream tomcat_web {
         server 172.16.30.2:8080 weight=1 max_fails=2 fail_timeout=30s;
         server 172.16.30.2:8081 weight=1 max_fails=2 fail_timeout=30s;
         server 172.16.30.2:8082 weight=1 max_fails=2 fail_timeout=30s;
}
server
  {
    listen       80;
    server_name tomcat.zjzd.cn;
location /
    {
          proxy_pass http://tomcat_web;
          index  index.jsp index.html;
    }
}
#/usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx -s reload

(4)测试

172.16.30.254 Windows

首先找到C:\Windows\System32\drivers\etc\hosts文件,然后右击选择"Edit with notepad++"添加172.16.30.1 tomcat.zjzd.cn,并通过浏览器访问进行测试

http://tomcat.zjzd.cn    //平均调度这三个实例

图1.1

图1.2

图1.3

5、配置Nginx动静分离

#vim  /usr/local/nginx/conf/domains/tomcat.zjzd.cn
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
    {
    root /data/webapps/www;
    #expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
    expires      3d;
    }
#mkdir -p /data/webapps/www
#vim /data/webapps/www/index.html
this s a static page!
#cd /data/webapps/www
#wget http://www.baidu.com/img/bd_logo1.png
#mv bd_logo1.png log.png
#/usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx -s reload

测试:http://tomcat.zjzd.cn/index.html http://tomcat.zjzd.cn/log.png

图2

图3.1

图3.2

注:需要对图3.1和图3.2说明的是,当浏览器第一次请求log.png图片时会返回200的状态码,代表是从远程服务器上请求的,第二次请求log.png时会返回304的状态码,代表请求的是从本地服务器上缓存的内容。在nginx配置文件中设置的静态内容过期时间为3天。当log.png文件失效时,例如替换log.png文件时。当再次刷新浏览器,会请求新的内容,但是新的内容不会正常显示。

图4

注:当停掉172.16.30.2所有的Tomcat服务时,静态内容会正常访问,但是动态内容则不会正常访问,因为做了动静分离,所以才会产生这种结果。

时间: 2024-10-17 14:27:50

Nginx+Tomcat多实例负载均衡的相关文章

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

Nginx+Tomcat+Keepalived+Memcache负载均衡动离分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

【转】搭建nginx+tomcat+Java的负载均衡环境

一.简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多. 二.下载安装: 下载nginx http://nginx.org/en/download.html 下载解压后放到C:\nginx-1.0.4(官网这样要求的,不知道放其它盘有没有问题) 启动nginx.exe,然后在浏览器输入127.0.0.1即可 配置自己的项目测试 第二环节我们使用了默认

Nginx+Tomcat搭建高性能负载均衡集群(转)

一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2: 3.然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml

【转载】Nginx+Tomcat搭建高性能负载均衡集群

最近对负载均衡比较感兴趣,研究了公司的负载均衡的配置,用的是阿里的SLB,相当于不用运维,只需要在后台进行简单的配置就能完成Tomcat的负载均衡,索性在网上找了几篇文章去尝试搭建一个集群,然而很多都是过时了或者不全,最后找到一个测试过能成功的文章. 一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为a

Nginx+Tomcat搭建高性能负载均衡集群

一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2: 3.然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml

Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享

CentOS安装Nginx?:http://centoscn.com/CentosServer/www/2013/0910/1593.html CentOS安装Tomcat?:http://blog.csdn.net/zhuying_linux/article/details/6583096 CentOS安装Redis?:http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3117997.html 多个Tomcat负载均衡实例:可在服务器上复

Nginx+Tomcat+Memcache实现负载均衡及Session共享

第一部分 环境介绍 部署环境: Host1:Nginx.Memcached.Tomcat1 Host2:Tomcat2 Tomcat_version:8.0.38 第二部分 Nginx+Tomcat实现负载均衡 1.nginx及tomcat的安装省略 2.nginx负载均衡配置: http标签中定义tomcat集群: upstream tomcat_server { server 101.200.229.38:8080; server 101.200.162.214:8080; } server

Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

转载请注明出处:http://blog.csdn.net/smartbetter/article/details/53535435 Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器.也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能.而最常见的就是使用Nginx实现负载均衡. Nginx与其他服务器的性能比较: Tomcat服务器面向Java语言,是重量级的服务器,而N