Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,简单的可以理解成使用 Nginx处理静态页面,Tomcat处理动态页面。因为nginx是给tomcat的请求做代理,现在静态资源放在nginx,需要静态资源直接去拿,不走Tomcat了,可以提高访问效率。
nginx 的动静分离是常用的一种功能,这个功能一般比较适合中小型的网站,大型网站一般来说就不适用。因为中小型网站的并发量并不是特别高,需要分离出来的静态资源不是特别多。那么需要把这些静态资源,挪到前置的nginx服务器里,如果大型系统的话,文件就太多,不适合动静分离这种简单的技术架构。
Nginx动静分离配置 动静分离从目前实现角度来讲大致分为两种: 一、纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案; 二、动态跟静态文件混合在一起发布,通过 nginx 来分开。通过location指定不同的后缀名实现不同的请求转发。通过expires参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。动态资源代理:具体可参考反向代理
location / {
proxy_pass 路径;
}
静态资源代理
#配置如下
location /xxx {
root 静态资源路径;
index 默认访问路径下的什么资源,即访问请求不带路径时,默认访问的地址;
autoindex on;#表示展示静态资源全的全部内容,以列表的形式展开。
}
例子:
server {
listen 80;
server_name 172.16.130.74;
location / {
proxy_pass http://172.16.130.75:8110;
}
location ~*/(img|js|css) { #正则表达式匹配uri,具体可参考配置文件说明一文
root html;
index index.html;
autoindex on;#表示展示静态资源全的全部内容,以列表的形式展开。
}
}
这样访问172.16.130.74/img/xxx.png访问的就是nginx 安装目录html/img/xxx.png;
访问172.16.130.74/js/xxx.js访问的就是nginx 安装目录html/js/xxx.js;
访问172.16.130.74/css/xxx.css访问的就是nginx 安装目录html/css/xxx.css;
访问172.16.130.74/core/getXXX访问的就是http://172.16.130.75:8110/core/getXXX。



