动静分离
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态页面,Tomcat、 Resin 出来动态页面
nginx location的正则法则:
~ 为区分大小写的匹配
~* 不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。
!~ 不匹配的
!~* 不匹配的
location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"“和”*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。
nginx.conf文件配置
#这里是正则验证,所有特定的后缀名都会进入
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
root html
index index.html index.htm;
}
解释
将所有指定的静态文件,图片,js,css…都存放在/usr/local/nginx/html里面,路径进入上面的location里面会直接进入/usr/local/nginx/html寻找要找的文件。
寻找文件是根据root来指定的,可以更改,不过存放的文件位置必须和root指定的路径是一致的。
这样就实现了动态文件和静态文件分离,当寻找静态文件时直接在nginx里寻找而不用在tomcat等服务器寻找,减少服务器的压力。