网站首页 > 技术教程 正文
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项,在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式。
nginx location的正则法则:
~ 为区分大小写的匹配。
~* 不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。
!~ 不匹配的
!~* 不匹配的
. 匹配除换行符以外的任意字符
location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。
location / { proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } #error_page 404 /404.html; location ~* \.(html|htm|shtml|gif|jpg|jpeg|bmp|png|ico|js|mp4|css)$ { root /home/www/static/show; #expires expires 3d; }
注意一点的是:
我之前走了岔路,想用application相对路径+文件路径的正则来匹配,调试了半天都没有通过。在线的正则匹配不支持nginx的规则。
经同事提醒,可以使用文件的相对路径正则+root到相应静态文件的目录,例如
root /home/www/static/show;
而不是location的正则。
参考文献:
https://www.jianshu.com/p/4a3dd77fe3e5
http://blog.csdn.net/gzh0222/article/details/7845981
http://blog.csdn.net/kobejayandy/article/details/20805059
猜你喜欢
- 2024-10-14 从官网入门系列-nginx web文件 反向代理 动静分离 负荷均衡(一)
- 2024-10-14 记:使用Nginx 部署前后端分离项目
- 2024-10-14 SpringBoot 2.0整合阿里云OSS,实现动静分离架构
- 2024-10-14 若依前后端分离部署 Nginx 反向代理,刷新页面失效和登录后 404
- 2024-10-14 nginx负载均衡配置与nginx动静分离
- 2024-10-14 Nginx负载均衡,双机热备与动静分离
- 2024-10-14 为什么要前后端分离?有什么优缺点?
- 2024-10-14 ASP.NET CORE 国产最火前后端完全分离框架BCVP
- 2024-10-14 Nginx读书笔记-动静分离(nginx+apache动静分离)
- 2024-10-14 Nginx 大揭秘:读写分离助力您轻松征服高并发
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)