在 Web 开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指 HTML,JavaScript,CSS,img 等文件。
一般来说,都需要将动态资源和静态资源分开,将静态资源部署在 Nginx 上,当一个请求来的时候,如果是静态资源的请求,就直接到 nginx 配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx 利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。
在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。
Nginx 动静分离,通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时。
动静分离后, 即使动态服务不可用,但静态资源不会受到影响。通过中间件将动态请求和静态请求分离:
Nginx 动静分离案例
#动静分离
server{
listen 80;
server_name cc.com;
access_log off;
location ~* \.(png|jpg|js|css)$ {
root /usr/haicoder/static;
#所有以.png .html .js .css 结尾的 url 进入此路径 (png|html|js|css)
}
location /{
index index.html index.htm;
proxy_pass http://127.0.0.1:8080/m/;#注意这里的/的含义见下文
}
}
在 Nginx 中配置 proxy_pass 代理转发时,如果在 proxy_pass 后面的 url 加 /,表示绝对根路径;如果没有 /,表示相对路径,把匹配的路径部分也给代理走。
我们首先,使用 vim 修改 /etc/nginx/conf.d/default.conf
配置,具体命令如下:
vim /etc/nginx/conf.d/default.conf;
现在,我们修改静态资源文件的路径,具体配置如下: