开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 10 天,点击查看活动详情
动静分离
概念
动静分离针对的是java的开发。
例如 java项目 用户访问网站的时候,访问的是nginx服务器,再由nginx服务器去访问java的tomcat服务器。其实一个网页是有很多的链接的,除了网页本身,图片 js css 这些静态的文件也是需要进行访问服务器的。如果每次我们都是由 ningx 去访问tomcat ,再由tomcat去返回给nginx,这样的话服务器压力会很大,因为静态文件可以直接访问给用户。所以我们把静态文件直接放到nginx上。动态的文件才会保存在tomcat上边,这个方法叫做动静分离。
简单的说是:静态文件可以放入到代理服务器上,动态文件放到业务服务器上。
动静分离的具体配置
动静分类的配置是可以有多个location的
如果上边的location不满足的话,就会走下边的location。、
虽然有代理服务器,但是 如果我们设置了其余的location 那么其余的location是可以正常被选择的。
如下代码的结果是:
如果是访问 / 则进行跳转
如果是访问 /css 则会在root 所对应的目录下边 寻找内容。
location 是可以设置多个的, 除了 css 外 还可以是js img 等 静态文件
具体动静分离是如何配置的,下边是动静分离的具体的配置代码:
#写一个代理服务器
location /{
proxy_pass http://jianzhang.xmkaifa.cn;
}
#如果是符合css的这个条件,那么走这个代码
location /css{
root /www/wwwroot/xmkaifa.cn;
}
优先级
我们可以写多个location,那么这多个location的优先级是怎么样的呢?
location / {} 这种优先级是最低的
location /xxx {} 这种优先级是大于上边的优先级的
正则表达式
我们会观察到上边如果有多个location的话,会给我们的文件读取带来不方便。那么我们如何简单的表示多个location呢
我们使用正则表达式:
location ~*/(js|img|css){}
使用上述方式就是可以表达多个了。
总结:
其实在nginx上配置动静分离并不是那么的男,它的应用场景也是比较简单的,因为tomcat一般是业务服务器。所以可以把静态文件放到nginx这个代理服务器上。
nginx配置多个location以及使用正则 表达式来配置,更加方便于nginx的配置文件的读取。