Nginx之动静分离

一、动静分离原因

以Tomcat服务器为例,Tomcat可以用来解析jsp页面,处理Servlet,但是Tomcat处理静态资源的能力并不是很强。如果可以将动态资源与静态资源相分离,这样就可以大大提高服务器的性能。Nginx可以帮我们处理静态资源,Tomcat可以用来处理动态资源,这样就可以大大提高效率,优化性能。

二、动静分离实现

首先,我们应了解路径匹配规则

=

=/aaa/1.jpg

路径严格匹配,路径必须一模一样才会匹配到

^~

^~/aaa

只要是指定路径开头的路径都可以匹配

~

~.png$

区分大小写按正则匹配路径

~*

~*.png$

不区分大小写按正则匹配路径

/

/

通用匹配,所有路径都可以匹配到

 

 

 

 

 

 

我们可以通过路径规则,来拦截请求,譬如,以/static,为开头的url地址,访问的是静态资源。然后,其他的便是访问动态资源。这种简易的规则,进行动静分离。

【1】在D://static下放置我们的静态资源

【2】在每个服务器中,各放置我们的项目war包

【3】修改Nginx配置文件

upstream ccc{
        server localhost:8081 weight=5;
        server localhost:8082 weight=3;
        server localhost:8083 down;
    }

    server {
        listen 80;
        server_name www.cccmall.com;
        location /{
            proxy_pass http://ccc;
        }
        location ^~/static {
            root d://;
            index index.html;
        }
    }

分析:

首先,根据路径匹配的优先级表明(越精确,越优先),所以,当以www.cccmall.com/static/1.html访问的时候,不会先去走“/”中。^~/static表示以/static开头的url地址。

如果有www.cccmall.com/static/1.html访问的时候,Nginx会将d://static/1.html静态资源返回给用户。

如果有www.cccmall.com/order/detail访问的时候,Nginx可能会将localhost:8081/webapps中项目名称/order/detail动态资源返回给用户。

大家注意:

root               用于指向nginx服务器中的本地磁盘地址、

index             表示默认页面

proxy_pass  用于处理请求转发,可以是单个地址,也可以是upstream定义的多个地址

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值