前言
这篇文章是收集我在工作中经常会用到的nginx相关知识点,本文并不是基础知识的讲解更多的是一些方案中的简单实现。
location的匹配规则
= 表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。 ^~ 表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找。 ~ 表示该规则是使用正则定义的,区分大小写。 ~* 表示该规则是使用正则定义的,不区分大小写。注意的是,nginx的匹配优先顺序按照上面的顺序进行优先匹配,而且注意的是一旦某一个匹配命中直接退出,不再进行往下的匹配
剩下的普通匹配会按照最长匹配长度优先级来匹配,就是谁匹配的越多就用谁。
history模式、跨域、缓存、反向代理
以目录去区分多个history单文件
因为不可能每一个项目开启一个域名,仅仅指向通过增加路径来划分多个网站,比如:
www.taobao.com/tmall/login访问天猫的登录页面 www.taobao.com/alipay/login访问支付宝的登录页面负载均衡
基于upstream做负载均衡,中间会涉及一些相关的策略比如ip_hash、weight
灰度部署
如何根据headers头部来进行灰度,下面的例子是用cookie来设置
如何获取头部值在nginx中可以通过$http_xxx来获取变量
优雅降级
常用于ssr的node服务挂了返回500错误码然后降级到csr的cos桶或者nginx中
优雅降级主要用error_page参数来进行降级指向备用地址。
webp根据浏览器自动降级为png
这套方案不像常见的由nginx把png转为webp的方案,而是先经由图床系统(node服务)上传两份图片:
一份是原图png 一份是png压缩为webp的图片(使用的是imagemin-webp)然后通过nginx检测头部是否支持webp来返回webp图片,不支持的话就返回原图即可。这其中还做了错误拦截,如果cos桶丢失webp图片及时浏览器支持webp也要降级为png
为什么要用nginx,nginx有什么特点?
nginx的特点:
核心特点:高并发请求的同时保持高效的服务 热部署 低内存消耗 处理响应请求很快 具有很高的可靠性同时,nginx也可以实现高效的反向代理、负载均衡。
前端可以用nginx做些什么?
搭建静态资源服务器 反向代理分发后端服务(可以和nodejs搭配实现前后端分离)和跨域问题 根据User Agent来重定向站点 开发环境或测试环境切换(切换host) url重写,使用rewrie规则本地映射 资源内容篡改 获取cookie做分流 资源合并 gzip压缩 压缩图片 sourceMap调试总结
到此这篇关于前端到底可以用nginx做什么的文章就介绍到这了,更多相关前端使用nginx内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://juejin.cn/post/7064378702779891749