当前位置: 首页 > 编程日记 > 正文

Nginx+Tomcat实现反向代理与动静分离

1. 什么是动静分离

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

2. 为什么做动静分离

Nginx处理静态页面的效率远高于tomcat,所有我们只让tomcat干自己擅长的事情,以事实说话,我们通过ab进行对一个静态页面访问做压力测试。

1) 做动静分离后nginx处理静态页面的压力测试:

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

clip_image002

吞吐量为:1.2M

2) 未做动静分离而是直接由tomcat处理同一个静态页面的压力测试:

# ab -n 1000 -c 200 http://10.10.11.91:8080/index.html

clip_image004

吞吐量为:0.08M

通过上面的压力测试结果,所有请求由tomcat处理与动静分离相比毫无疑问动静分离才是王道!

3. 动静分离逻辑图

clip_image006

4. Nginx与tomcat部署

由一键安装middleware_install_v.1.0.3.tar.gz进行部署,这里不再赘述。

5. Nginx配置

nginx需要配置的地方如下:

server {

listen 80;

server_name www.test.com 10.10.11.91;

index index.html index.htm index.jsp index.do

root /usr/local/nginx/html; #由nginx处理静态页面

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

expires 30d;

}

location ~ .*\.(js|css)?$ {

expires 1h;

}

location ~ (\.jsp)|(\.do)$ {

proxy_pass http://10.10.11.91:8080; #以jsp和do请求的页面经过nginx反向代理由tomcat处理

proxy_redirect off;

proxy_set_header HOST $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

}

}

6. 验证动静分离的效果

我在tomcat的根目录ROOT下建立了index.html、test.jsp、test.do三个测试文件:

clip_image007

我在nginx的根目录/usr/local/nginx/html下建立测试首页index.html

直接访问tomcat的静态首页:

clip_image008

直接访问tomcat的jsp页面:

clip_image009

直接访问tomcat的.do页面:

clip_image010

现在进行通过nginx进行访问:

Nginx的首页:

clip_image011

查看nginx处理jsp页面的请求:

查看nginx处理.do页面的请求:

clip_image013

至此,nginx与tomcat已实现了反向代理动静分离。





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

相关文章:

白话经典算法系列之七 堆与堆排序

堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大…

.NET2.0抓取网页全部链接【月儿原创】

.NET2.0抓取网页全部链接 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.18 该方法经过对各大门户网站测试结果是抓取率100%! 效果图 后台代码: using System;using System.Data;…

腾讯会议又一黑科技,屏蔽超过 200 种会议噪声是如何做到的?

作者 | 伍杏玲出品 | AI 科技大本营(ID:rgznai100)远程会议已成为我们常规的工作沟通方式,在线交流打破时间、空间的限制,给予我们便利之际,也屡遭尴尬:忘记静音,一边听会一边敲键盘&#xff0c…

zabbix之日志文件监控

一、日志item介绍 下面介绍zabbix另一个“重量级”的功能——日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。 在配置Item的时候,Type选择Zabbix agent (active)&#xff…

深度学习三巨头共同发文,聊聊深度学习的过去、现在与未来

作者|Yoshua Bengio,Yann LeCun,Geoffrey Hinton译者|香槟超新星出品|AI科技大本营(ID:rgznai100)人工神经网络领域的研究是基于对人类智能的观察而来:人类智能从高度并行的网络中产生,这些网络由结构相对简单的非线性神经元组成,通过调整连接…

ASP.NET2.0图片格式转换【月儿原创】

ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.20 说明:本文实现了图片格式随意转换(下拉框选择);点击FileUpload立即显示图片&#xf…

org.apache.hadoop.fs-ChecksumException

当ChecksumFileSystem出现问题时抛出 1 package org.apache.hadoop.fs;2 3 import java.io.IOException;4 5 /** Thrown for checksum errors. */6 public class ChecksumException extends IOException {7 private long pos;8 public ChecksumException(String descriptio…

Linux下显示硬盘空间的两个命令

1.df -h ,用于显示目前所有文件系统的可用空间及使用情况,示例如下: [rootmsg45 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_msg45-lv_root 50G 15G 33G 31% / tmpfs …

C#对Microsoft.VisualBasic My对象兰台妙选【月儿原创】

C#对Microsoft.VisualBasic My对象兰台妙选 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.24 1.添加引用 2.引用Microsoft.VisualBasic 命名空间 3.所有的My对象应用皆出自以下类库,本文仅抛砖…

AIoT的发展路上,英特尔如何通过边缘计算掀起产业变革

你知道吗?到明年,仅我国的物联网连接规模将达到70亿,而全世界的人口也不过刚刚达到这个数字。物联网的爆发意味着什么?相信每个人都有着不同的答案,对于我国的14亿人口而言,即将全面到来的物联网红利不仅能…

Xbox One 游戏欣赏: Xbox Fitness 太极拳游戏

早就听说Xbox One中带有太极拳,这是我一直想练的,终于找到“死人定制”的师傅了。因为看书很难练,找不到联系场所,要么就要花价格不菲的学费。Xbox 360中的型可塑2012游戏中,包含了一个游戏章节就是Taiji,但…

Android美工坊:Selector选择器的使用

Android selector选择器可以让你切换自定义的背景风格,比如button、ListView、或者布局点击时候的背景切换等,都需要用到它 背景可以是自定义到颜色,或者图片资源 首先需要在你的res目录下创建drawable文件夹,然后在里面创建一个s…

C#中判断空字符串的3种方法性能分析【月儿原创】

C#中判断空字符串的3种方法性能分析 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.28 3种方法分别是:string a"";1.if(a"")2.if(aString.Empty)3.if(a.Length0) 3种方法都是…

微软职位内部推荐-SDEII

微软近期Open的职位:Title: Software Development Engineer 2Group: Bing Client, Search Technology Center Asia, BingWork Location: Beijing/Suzhou, China Group OverviewSearch Technology Center Asia (STCA)STCA was founded in year 2005 and is now starting the sec…

WAIC剪影:AI的未来,关乎星辰大海

“天文学,是像数学一样的基础学科,而越是基础学科,就越难直接应用。”“我们没有想过盈利,这些技术目前来看也不太可能直接应用到其他领域。”“不管是优图还是腾讯公司层面,不是做的每件事情都要考虑它的经济价值或者…

用Swift实现一款天气预报APP(三)

这个系列的目录: 用Swift实现一款天气预报APP(一) 用Swift实现一款天气预报APP(二) 用Swift实现一款天气预报APP(三) 通过前面的学习,一个天气预报的APP已经基本可用了。至少可以查看…

asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.5.16 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你; 不能说这30本书…

了解黑客的关键工具---揭开Shellcode的神秘面纱

2019独角兽企业重金招聘Python工程师标准>>> ref: http://zhaisj.blog.51cto.com/219066/61428/ 了解黑客的关键工具---揭开Shellcode的神秘面纱 对于初期接触网络安全的人来说,Shellcode是很神秘的东西,对于网络攻击过程中的嗅探信息、漏洞…

2021年移动云API应用创新开发大赛火热开启!

每一位开发者,都是这个时代宝贵的财富2021年移动云API应用创新开发大赛以“创新云转型,智慧云服务”为主题旨在激发开发者创新动力丰富云计算应用场景与移动云携手探索数智未来给社会带来更多智慧创新体验大赛官方报名通道已开启您可通过下方二维码报名参…

Android 多媒体综述

Android 多媒体综述 多媒体系统是Android中最为庞大的系统,涉及了硬件抽象层、编解码、OpenCore多媒体框架、Android多媒体框架、Java层接口多方面的内容。一、引言本系列内容都是在Android应用层面的,将会分为Camera、Audio、Video三部分进行讲述。另外…

asp.net2.0导出pdf文件完美解决方案【月儿原创】

asp.net2.0导出pdf文件完美解决方案 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.5.28 PDF简介:PDF(Portable Document Format)文件格式是Adobe公司开发的电子文件格式。这…

MYSQL 部分事务

MYSQL 中通过 savepoint 的方式来实现只提交事务的一部分。 step 1 : savepoint savepoint_name;、 做标记 step 2 :rollbak to savepoint savepoint_name;回滚到标记点 setp 3 :release savepoint savepoint_name;解除标记 -------------------------------------------------…

二维已经 OUT 了?3DPose 实现三维人体姿态识别真香 | 代码干货

作者|李秋键出品|AI科技大本营(ID:rgznai100)引言人体姿态估计是计算机视觉领域很多研究工作的基础,也是研究的热点问题,在行为识别、人机交互、姿态跟踪等领域有着广泛的应用前景。按照人体姿态维度的差异,可以将人体姿态估计任务分为二维人…

python学习------tab补全

python学习------tab补全 python也可以进行tab键补全 123456789101112131415161718#!/usr/bin/env python# -*- coding: utf-8 -*-# python startup fileimport sys import readline import rlcompleter import atexit import os # tab completionreadline.parse_and_bind(tab:…

asp.net的Ajax学习进阶

asp.net的Ajax学习进阶 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.3 1.什么是Ajax? 2006年忽如一夜春风来,众多涉及到Web开发的站点都在谈Ajax,那么到底什么是Ajax呢&#xff1f…

Windows下FFmpeg高速入门

本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视频文件转换成FLV整理 java 视频处理 mencoder java 视频处理 ffmpedmencoder Windows下FFmpeg高速入…

“香山”处理器产生背后的逻辑

作者 | 老石谈芯的老石来源 | 老石谈芯在最近召开的RISC-V中国峰会上,中科院计算所的包云岗研究员团队正式发布了名为“香山”的开源高性能RISC-V处理器。前不久我有幸和包老师就这个事情做了一次深度的交流,我们聊了关于RISC-V、还有“香山”处理器的前…

第79天:jQuery事件总结(二)

上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件、事件冒泡和事件移除等内容。 一、合成事件 jQuery有两个合成事件——hover()方法和toggle()方法,同ready()方法一样,这…

asp.net利用RAR实现文件压缩解压缩【月儿原创】

asp.net利用RAR实现文件压缩解压缩 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.13 如果服务器上安装了RAR程序,那么asp.net可以调用RAR实现文件压缩与解压缩。 不过要注意的是,由…

缺少HTML Doctype造成的样式问题

很简单的一个登陆界面: 代码&#xff1a; <html> <head><style type"text/css">form span {display: block;font-size: 1em;color: #787878;padding-bottom: 5px;font-weight: 600;font-family: Open Sans, sans-serif; }body{background-color: #…