nginx动静分离

73 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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的配置文件的读取。