一:Nginx+Tomcat的动静分离

所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片、html等静态的文件,tomcat(或weblogic)处理jsp、do等动态文件,从而达到动静页面访问时通过不同的容器来处理。

nginx处理静态页面效率远高于tomcat,而tomcat擅长动态页面处理,这样一来就能更好的提高并发,处理性能。

页面压力测试

ab -n 1000 -c 200 http://10.10.54.157/index.html

二:具体步骤

//环境介绍

1
2
3
4
5
6
7
8
9
10
11
1.主机
centos6.4 IP:10.10.54.157
 
2.在此主机上安装nginx,及两个tomcat,nginx的反向代理功能可以把用户请求负载到tomcat上
nginx使用80端口,两个tomcat分别使用8080,9080端口
目的:当访问10.10.54.157这台服务器时,静态页面由nginx处理,动态页面由tomcat处理
 
3.软件下载
wget http://nginx.org/download/nginx-1.4.5.tar.gz
wget http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm    #jdk提供tomcat运行环境
wget http://apache.dataguru.cn/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz

//安装nginx,并配置nginx支持php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#nginx使用fpm的方式调用php
#php5.4以后版本中已经支持php-fpm,所以只需要在php编译参数里指定--enable-fpm即可
1.编译安装
shell> yum  -y install zlib-devel pcre-devel openssl-devel    #nginx依赖包
shell> tar xvf nginx-1.4.5.tar.gz
shell> cd nginx-1.4.5
shell> ./configure --prefix=/usr/local/nginx --with-pcre --with-http_stub_status_module --user=apache --group=apache --with-http_ssl_module --with-http_gzip_static_module
shell> make && make install
2.启动nginx
shell> /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
##添加nginx支持php
3.首先为php创建配置文件 
shell> cp php.ini-production /usr/local/php/php.ini    
shell> mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf    
shell> ln -s /usr/local/php/bin/php /usr/bin/    
   
4.配置php-fpm.conf    
shell> vi /usr/local/php/etc/php-fpm.conf    
--------------------------------    
listen = /var/run/php-fpm.sock   # 使用unix socket    
--------------------------------    
5.启动php-fpm    
shell> /usr/local/php/sbin/php-fpm

//安装JDK

1
2
3
4
5
6
7
8
9
10
11
shell> rpm -ivh jdk-7u51-linux-x64.rpm
shell> vi /etc/profile
-----------------------
export JAVA_HOME="/usr/java/jdk1.7.0_51"
export CLASSPATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
export PATH="$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOME/bin"
CATALINA_HOME="/usr/local/tomcat"
-----------------------
shell> source /etc/profile
shell> java -version  #显示版本说明成功
java version"1.7.0_45"

//安装多个tomcat

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
1.解压
shell> tar xvf apache-tomcat-7.0.52.tar.gz 
shell> cp apache-tomcat-7.0.52 /usr/local/tomcat1
shell> cp apache-tomcat-7.0.52 /usr/local/tomcat2
shell> chown apache.apache /usr/local/tomcat1
shell> chown apache.apache /usr/local/tomcat2
 
【tomcat1 and tomcat2】
2.制作tomcat启动脚本
shell> cp catalina.sh /etc/init.d/tomcat1
shell> chmod +x /etc/init.d/tomcat1 
shell> vim /etc/init.d/tomcat1
shell> chkconfig --add tomcat1
 
【tomcat1 and tomcat2】
3.tomcat配置用户管理(可以不设置)
shell>cd /usr/local/tomcat1/conf
shell> vim tomcat-users.xml 
-----------------------------------------
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/>   
#用户名和密码都为tomcat
-----------------------------------------
 
【tomcat1 and tomcat2】
4.重启tomcat
shell> /etc/init.d/tomcat stop
shell> /etc/init.d/tomcat start

//配置nginx.conf实现负载均衡,动静分离

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
shell> vim /usr/local/nginx/conf/nginx.conf
--------------------------------------------------------
user  apache apache;    #用户,tomcat默认首页也要改为apache用户
worker_processes  2;
#error_log  logs/error_nginx.log;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
 
http   
{  
          include       mime.types;  
          default_type  application/octet-stream;       
          server_names_hash_bucket_size 128;  
          client_header_buffer_size 32k;  
          large_client_header_buffers 4 32k;  
          client_max_body_size 8m;  
          sendfile on;  
          keepalive_timeout 60;  
          gzip on;  
  
#负载均衡
upstream www_zijian_com {
          server localhost:8080 max_fails=3 weight=1 fail_timeout=60s;
          server localhost:9080 max_fails=3 weight=1 fail_timeout=60s;
        }
         
server
  {
         listen       80;
         server_name  www.zijian.com;            
         index index.jsp index.php index.do index.jsp;
         access_log  logs/www.zijian.com_access_nginx.log;
         error_log logs/www.zijian.com_error.log;
         root  /var/www/nginx;    #nginx默认根目录
    location ~ \.(php|php5)$ {        #支持php
            fastcgi_pass  unix:/var/run/php-fpm.sock;    #php-fpm.sock模块
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
            }
    location ~ \.(jsp|do)$ {        #jsp,do等页面交由tomcat处理
            proxy_pass http://www_zijian_com;
            proxy_set_header HOST $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires      30d;
            }
}
}

//测试

1.浏览器访问10.10.54.157 默认显示nginx根目录下的index.php页面

2.浏览器访问10.10.54.157/index.jsp 浏览器跳转到tomcat默认首页,在首页点击Server Status页面,并刷新浏览器,可以看到页面在两个tomcat之间切换

Nginx加多个tomcat实现负载均衡,动静分离的更多相关文章

  1. Nginx+Tomcat配置负载均衡-动静分离(二)

    配置动静分离的时候遇到了一些问题,一个是配置nginx配置文件有问题导致访问不到服务器,另一个问题是配置静态资源的路径和实际的资源目录不匹配导致404,502等错误 结合上一篇的基础,在此将动静分离的 ...

  2. Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验

    实验拓扑图: 实验环境: 在VMware workstation搭建虚拟环境,利用网络适配器的Nat和桥接模式模拟内网和外网环境. 实验过程中需要安装的工具包包括:vim unzip lrzsz ls ...

  3. nginx+tomcat负载均衡+动静分离+redis集中管理session

    1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_process ...

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

    一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判 ...

  5. 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

    额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...

  6. LVS负载均衡+动静分离+高可用(nginx+tomcat+keepalived)

    文章目录 [隐藏] 一.环境介绍 二.环境安装 1.安装JDK 2.两台服务器安装tomcat 3.nginx安装 4.keepalive安装 三.负载均衡 四.动静分离 五.keepalive高可用 ...

  7. nginx配置优化+负载均衡+动静分离详解

    nginx配置如下: #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细 ...

  8. [转] nginx配置优化+负载均衡+动静分离(附带参数解析)

    #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes  8;#全局错误日志文件#debug输出日志最为详细,而crit输出日志 ...

  9. Haproxy负载均衡/动静分离(haproxy各选项详细解释)

    在前端领域做负载均衡,动静分离的程序有很多,比较常用的是nginx和Haproxy,今天就说一下 Haproxy在这两方面的表现,文章参考很多网文写成,再加上自己的实验成果,文中所有解释都经过实际环境 ...

随机推荐

  1. UML中常见关系详解(泛化、实现、依赖、关联、组合、聚合)

    UML中类与类,已经类与接口,接口与接口的关系有:泛化(generalization),关联(association),依赖(dependency),实现(realization)这几种.   泛化( ...

  2. 12月上旬poj其他题

    poj3170 1,4两遍bfs: poj3171 改一改poj2376即可 poj3172 dfs+剪枝 其实增长速度很快,n<=40,题目吓你的: poj3661 比较经典的dp:设f[i, ...

  3. poj3254

    还是那句老话:dp关键在状态: 求有多少种排布方式,是任意两头牛不相邻(有些地方不能放): 不用心,一开始还纠结了半天 和之前USACO上某题方法是一样的,每一行放或不放只有两种情况 把它当作一个二进 ...

  4. [原]Unity3D深入浅出 - 粒子系统(Particle System)

    粒子系统是在三维空间渲染出来的二维图像,主要用于烟,火,水滴,落叶等效果.一个粒子系统由粒子发射器.粒子动画器和粒子渲染器三个独立的部分组成. Unity中自带了一些粒子效果,在Assets>I ...

  5. 《深入Java虚拟机学习笔记》- 第12章 整数运算

    Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算.当byte.short和char类型值参与算术运算时,首先会将它们转换为int类型.这些操作码都不会抛出异常,溢 ...

  6. 【原】理解Storm拓扑的并行

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

  7. 树-二叉平衡树AVL

    基本概念 AVL树:树中任何节点的两个子树的高度最大差别为1. AVL树的查找.插入和删除在平均和最坏情况下都是O(logn). AVL实现 AVL树的节点包括的几个组成对象: (01) key -- ...

  8. bzoj 2301 [HAOI2011]Problem b(莫比乌斯反演)

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  9. NOIP 2014 无线网络发射器选址

    水题..直接暴力 #include<cstdio> #include<algorithm> using namespace std; const int inf = 0x3f3 ...

  10. 安装mysql-5.7.9-winx64

    1.mysql-5.7.9-winx64.zip下载 官方网站下载地址:http://dev.mysql.com/downloads/mysql/5.7.html 2.解压到D:\MySqlDataB ...