5.3 Nginx 动静分离

Server 脚本片段
server {
listen ;
server_name ccserver1;
#charset koi8-r;
access_log logs/host.access.log main;
index index.html index.htm index.jsp;
root /usr/tomcat-8.0.-RC5-/webapps/ROOT/;
location ~* .*\.(jpg|jpeg|gif|png|swf|ico)$ {
if (-f $request_filename){
break;
}
}
location ~* .*\.(html|htm|js|css)$ {
# express id;
}
location / {
proxy_pass http://cctest1.com;
# root html;
# index index.html index.htm;
}
备注:脚本片段,第一个,第二个lcation 是没有配置proxy_pass 代理地址的,这个时候回默认到 root的下面去找静态资源
root /usr/tomcat-8.0.0-RC5-1/webapps/ROOT/;
场景测试一
注释:第一个,第二个location,查看tomcat的日志信息

场景测试二
取消注释:第一个,第二个location,查看tomcat的日志信息

结果
实现了动静分离
搭建我们自己电商平台的动静分离
访问:http://172.20.10.5/architecture1web
结果(发现静态资源图片无法找到)

因此需要修改 nginx.conf配置文件里面的root 路径
修改前
root /usr/tomcat-8.0.-RC5-/webapps/ROOT/;
修改后
root /usr/tomcat-8.0.-RC5-/webapps
仍然找不到
检查图片地址(http://172.20.10.5/architecture1web/static/images/logo.jpg),但是172.20.10.5是nginx代理tomcat的地址,无法找到静态资源
进入linux操作系统目录查找是否有这个地址,发现没有静态资源

为什么tomcat直接访问路径“http://172.20.10.5:8080/architecture1web/static/images/logo.jpg”的时候,可以直接访问? spring mvc进行了一次路径的映射转换,因此才可以正常访问
现在nginx直接进行静态资源的访问
拷贝wen-inf下面的static的目录到architecture1web目录
[root@eshop-cache04 WEB-INF]# cp -r static/ /usr/tomcat-8.0.-RC5-/webapps/architecture1web
检查静态资源

刷新页面

实现动静分离
电商平台可以实现动静分离,但是在访问tomcat的时候,出现静态资源访问的异常(http://172.20.10.5/)

修改nginx.conf的配置文件
root /usr/tomcat-8.0.-RC5-/webapps/ROOT;
location ~* ^/architecture1web/.*\.(jpg|jpeg|gif|png|swf|ico)${
root /usr/tomcat-8.0.-RC5-/webapps;
}
location ~* ^/architecture1web/.*\.(html|htm|js|css)${
root /usr/tomcat-8.0.-RC5-/webapps;
}
[root@eshop-cache04 sbin]# ./nginx -s reload
检查tomcat,一切正常

检查电商平台,一切正常

5.3 Nginx 动静分离的更多相关文章
- Nginx动静分离经典
Nginx:安装nginx之前需要安装pcre包和zlib以支持重写,正则以及网页压缩等等]把所需的包下载到/usr/src下[根据自己的习惯,路径可以改变]1.首先安装pcre: cd /usr/s ...
- Nginx动静分离实现
Nginx动静分离实现: Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Ng ...
- Nginx动静分离架构
Nginx动静分离简单来说就将动态与静态资源分开,不能理解成只是单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat,Res ...
- Nginx 动静分离与负载均衡的实现
一.前提 企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题. 问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我们对于网站环 ...
- Nginx动静分离
动静分离 Nginx动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路. ...
- Nginx动静分离架构&&HA-LB集群整合
Nginx动静分离简单来说就将动态与静态资源分开,不能理解成只是单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat,Res ...
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- Nginx动静分离知识及配置
Nginx动静分离知识及配置,本质上与分离上传下载功能是相同功能,本质就是在文件服务器也是需要部署WEB应用的,只是在进行代理分离的时候分配到对应的文件服务器上去. 随着Nginx高性能Web服务器大 ...
- Nginx动静分离(Nginx+Tomcat)
第一步:nginx构建 第二步:Tomcat构建 1.Tomcat基础点 (1)Tomcat 是基于java开发的web容器,用来发布java代码和jsp网页. (2)开发人员开发java web网站 ...
- nginx动静分离简单实例实现
什么是动静分离? Nginx 动静分离简单来说就是把动态和静态请求分开,不能理解成只是将动态页面和静态页面物理分离.严格意义上说应该是动态请求和静态请求分开,可以理解成使用 nginx 处理静态页面, ...
随机推荐
- 解决chrome记住账号默认样式覆盖
当谷歌游览器记住账号后,输入框的颜色会变为黄色,最直接的方法:加入以下代码 input:-webkit-autofill , textarea:-webkit-autofill, select:-we ...
- 转发-[原创]ASR1K 在Rommon导入IOS-XE启动
在相对较老的设备平台可以通过在rommon下使用以下命令导入IOS. rommon 1 > IP_ADDRESS=192.168.1.2rommon 2 > IP_SUBNET_MASK= ...
- System.getProperty() 获取系统变量
例:获取用户当前的工作目录 String CONFPREFIXURL = System.getProperty("user.dir"); System.out.println(CO ...
- Python与线性代数——Numpy中的matrix()和array()的区别
Numpy中matrix必须是2维的,但是 numpy中array可以是多维的(1D,2D,3D····ND).matrix是array的一个小的分支,包含于array.所以matrix 拥有arra ...
- Python3中reduce和lambda的用法
reduce() 函数将一个数据集合(iterable[, initializer])可以看出是包含了初始化数据的,且初始化数据位列第1位,即集合中的第1个元素)中的所有数据进行下列操作:先对集合中的 ...
- Update(stage3):第1节 redis组件:4、安装(略);5、数据类型(略);6、javaAPI操作;
第三步:redis的javaAPI操作 操作string类型数据 操作hash列表类型数据 操作list类型数据 操作set类型的数据 详见代码
- springdata框架
SpringData jpa: JPA(Java Persistence API)是当年的 Sun 官方提出的 Java 持久化规范. Spring Data JPA 是 Spring 基 ...
- Java基础 -2.3
浮点数类型 所有的数据类型进行自动转型的时候都是由小类型到大类型进行自动转换处理.默认的类型为double,但是也可以定义位数相对较少的float变量 ,此时从赋值的时候就必须采用强制类型转换 pub ...
- 解题报告:luogu P5543 [USACO19FEB]The Great Revegetation S
题目链接:P5543 [USACO19FEB]The Great Revegetation S 好坑啊,都身败名裂了. 思路一: 考虑染色法,跑一遍搜所就好了,不给代码了. 思路二: 考虑并查集,我想 ...
- warning no match for this type name: entity.User [Xlint:invalidAbsoluteTypeName]
这个bug是由于在spring的配置文件中的错误 这是由于上述中的 这一句中的这里的类名的引用错了,我的正确类名引用是 所以只要将包引用的包名修改为User类的完全限定名就可以了