Nginx之动静分离
为什么要动静分离呢?
拿Nginx来说,Nginx是Web服务器,仅仅只能处理静态资源(例如js,img,css等等),而Tomcat属于应用服务器既能处理静态资源又能处理动态资源(例如jsp,freemarker,volocity等等)。但是Nginx处理静态资源的效率要高于Tomcat,而Tomcat处理静态资源的效率要低于Nginx很多,术业有专攻是也。由此,我相信大家明白了为什么要动静分离了。
如果还有不明白的,简单的说,web开发的本质就是HTTP请求,将成千上万的请求归类进行分发,谁谁处理这个,谁谁处理那个,取其优势,应用之。这样,毋庸置疑,效率肯定会上去的。
另外说下常用的应用服务器和web服务器?
常用的web服务器:Nginx、Apache等等。
常用的应用服务器:Tomcat、Jboss、Resin、WebLogic等等。
其实Apache也可以做动静分离,只不过我认为Nginx更简单。
关于Nginx的安装可以参考菜鸟教程:http://www.runoob.com/linux/nginx-install-setup.html
关于Nginx的学习和各个模块的含义可以参考这个网址:http://www.nginx.cn/doc/
关于负载均衡和集群均可以参考我的这两篇文章:
nginx反向代理和tomcat集群(适用于ubutnu16.04及其centos7)
1.动静分离架构图

2.Nginx配置
主要修改nginx.conf配置文件
upstream yctech{
server 192.168.126.128:8080;
}
server {
listen 80;
server_name yctech;
#charset koi8-r;
#access_log logs/host.access.log main;
root /test;
location / {
proxy_pass http://yctech;
root html;
index index.html index.htm;
}
location ~ ^/yctech1/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ ^/yctech2/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ ^/yctech3/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ ^/yctech4/(.*){
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://yctech; #转向tomcat处理
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
expires 30d;
}
root 对应的html是nginx的一个目录,这个目录下通常是官网的主页。
像root /test;
是因为html下有test目录,而test目录主要放置静态资源,同时也是处理静态资源。

3.编写index.jsp页面测试
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<img src="logo_small.png" width="500px" height="500px"/>
</body>
</html>
jsp页面中的logo_small.png其实是放在test目录下的。
4.重启Nginx
./sbin/nginx -s reload 并在浏览器上输入对应的地址,即可看到对应的效果。
参考思路博文为:https://www.cnblogs.com/xiaoblog/p/4241086.html
Nginx之动静分离的更多相关文章
- nginx+tomcat动静分离结构
本文采用另一种策略对动静分离进行演示,它的大致结构如图 2 所示. 图 2. 本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 ...
- Nginx+Apache动静分离
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术.动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项 针对PHP的动 ...
- 《nginx 五》nginx实现动静分离
Nginx+Tomcat动静分离 动态页面与静态页面区别 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源. 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变. 什么是动 ...
- 15 nginx反向代理实现nginx+apache动静分离
一:nginx反向代理实现nginx+apache动静分离-------------概念--------------------------- nginx反向代理服务器+负载均衡 用nginx做反向代 ...
- apache+nginx 实现动静分离
apache+nginx 实现动静分离 http://blog.csdn.net/xysoul/article/details/50347971
- nginx之动静分离(nginx与php不在同一台服务器)
nginx实现动静分离(nginx与php不在同一个服务器) 使用wordpress-5.0.3-zh_CN.tar.gz做实验 Nginx服务器的配置: [root@app ~]# tar xf w ...
- 使用nginx实现动静分离的负载均衡集群
一.概述: LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层) 客户端通过访问分发器的VIP来访问网站 |现在应用更复杂,比如现在网站页面有: .php .html . ...
- Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡
文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...
- Nginx的动静分离
Nginx的动静分离 在之前我们的负载均衡中,我们再jsp中设置了一个背景,这是一个静态资源,Tomcat处理静态资源的效率并没有Nginx高,我们可以通过动静分离将静态资源和动态资源分割开来,Tom ...
- nginx tomcat 动静分离
所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片.html等静态的文件,tomcat(或weblogic)处理jsp.do等动态文件</span>,从而达到动静页面 ...
随机推荐
- VMwear安装Centos7详细过程
1.软硬件准备软件:推荐使用VMwear,我用的是VMwear 10镜像:CentOS7 硬件:因为是在宿主机上运行虚拟化软件安装centos,I3CPU双核.硬盘500G.内存4G以上. 2 ...
- MySQL数据库的备份与恢复命令
1.数据库导出SQL脚本 启动MySQL服务器 输入:mysqldump -u root -p 数据库名>生成脚本文件路径 输入登录密码,回车键 例如: $ mysql.server star ...
- Java 并发:线程中断-interrupt
一直以为执行了interrupt方法就可以让线程结束,并抛出InterruptedException. 今天看了Java并发编程实战的第七章发现并不是这么回事,在这章的开头就提到 要使任务和线程能安全 ...
- 如何用Fireworks制作经典的扫光字GIF动画
1.首先我们把背景选为黑色.再输入文字用白色填充,注意调整文字之间的间隔. 2.选中字体,对其进行转换为路径文件. 3.对间隔再做少许调整. 4.复制文字改为黑色,做平移,出现立体效果. 5.再复制一 ...
- javascript的时间描述图怎么写
在gis系统中往往需要在一个时间间隔内把图形动态播放出来,比如2000年到现在地震变化啊,海啸的变化,在flex中这种展现方式需要后台rest服务相结合,要建立有时间点的图层,arcgis发布要选ti ...
- Android 图片缩略图显示
//通过openRawResource获取一个inputStream对象 InputStream inputStream = getResources().openRawResource(R.draw ...
- jQuery 所有版本在线引用
jquery-3.1.1(最新) 官网jquery压缩版引用地址: <script src="https://code.jquery.com/jquery-3.1.1.min.js&q ...
- python装饰器 高阶函数 函数闭包
1.装饰器: 本质是函数,功能是为其他函数添加附加功能 原则:1.不修改被装饰函数的源代码 2.不修改被修饰函数的调用方式 装饰器=高阶函数+函数嵌套+闭包 #装饰器格式框架def wrap(func ...
- 初识WCF3
http://www.cnblogs.com/xiangchangdong/p/3924030.html 第三篇 在IIS中寄宿服务 通过前两篇的学习,我们了解了如何搭建一个最简单的WCF通信模型,包 ...
- 随手记C#资料
1.where T: new()where后的称为泛型约束,这里约束泛型参数T必须具有无参的构造函数 2.判断路径是本地路径还是网址 private static bool IsLocalPath(s ...