动静分离实例

1.关于nginx动静分离
Nginx 动静分离简单来说就是把动态跟静态请求分开;
不能理解成只是单纯的把动态页面和静态页面物理分离;
严格意义上说应该是动态请求跟静态请求分开;
可以理解成使用 Nginx处理静态页面, Tomcat 处理动态页面;
 
动静分离从目前实现角度来讲大致分为两种:
    一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;
    另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。
 
通过 location 指定不同的后缀名实现不同的请求转发。
通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。
例如:设置expires为 3d,表示在这 3 天之内访问这个 URL,发送一个请求,
    比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,
    如果有修改,则直接从服务器重新下载,返回状态码 200。
 
 
 
1.实际测试
预期效果:
    a.html通过tomcat静态请求;
    a.html中会引用静态资源a.css使字体变红,并且引用静态资源中的图片;
    a.css和wst.jpg通过静态请求;
    远程访问a.html时,可以看到a.html中有静态资源的效果,即字体变红,有图片;
 
主要思路:
    在linux服务器根目录下建一个/data/static目录用来保存静态文件;可以用mkdir命令来创建目录;
    在static文件中放静态文件;
    在ngnix中配置文件的server块中添加一个location中来关联该静态文件目录;
    动态文件是通过tomcat来访问,需要放在tomcat的webapp目录下;
    在nginx中给tomcat配置反向代理;
 
1)配置静态文件
在/data/static中放入静态文件;
a.css:作用是使p标签中的字体为红色
p{color:red}
wst.jpg:
 
在ngnix中配置:
        location /static/{
            root    /data/;
            autoindex on;
        }
当请求路径中有/static/时这条location会生效;
root    /data/;    ->表示请求静态资源文件的根据路是/data/;
    例如:请求 xxxx:80/static/a.css 时,会以服务器的/data/static/a.css路径来找;    
autoindex on;    ->作用是列出目录中的内容;
    例如:访问 xxxx:80/static/时会显示static目录的所有文件;
 
2)配置动态文件
将a.html放入tomcat的webapp目录中的test目录中;
a.html:其中引用了静态资源文件a.css和wst.jpg
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="stylesheet" href="/static/a.css" type="text/css" />
    </head>
    
    <body>
        <h1>8080</h1>
        <p>如果引用了静态的css则为红色</p>
        <img src = "/static/wst.jpg"/>
    </body>    
</html>
 
在nginx中给tomcat配置反向代理:
        location ~/test/{
            proxy_pass  http://127.0.0.1:8080;
        }
请求路径中带有tomcat时会访问tomcat服务器;
 
重启nginx:
./nginx -s reload
 
远程访问:
 
 
 
posted @ 2019-11-07 15:47  L丶银甲闪闪  阅读(597)  评论(0编辑  收藏  举报