纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

nginx前端到底用来做啥

11月27日 呛人心投稿
  这篇文章是收集我在工作中经常会用到的nginx相关知识点,本文并不是基础知识的讲解更多的是一些方案中的简单实现。location的匹配规则表示精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。表示如果该符号后面的字符是最佳匹配的,采用该规则,不再进行后续的查找。表示该规则是使用正则定义的,区分大小写。表示该规则是使用正则定义的,不区分大小写。
  注意的是,nginx的匹配优先顺序按照上面的顺序进行优先匹配,而且注意的是一旦某一个匹配命中直接退出,不再进行往下的匹配
  剩下的普通匹配会按照最长匹配长度优先级来匹配,就是说谁匹配得越多就用谁。server{servernamewebsite。locationdocument{return701;}locationdocume。{return702;}locationdocument{return703;}}curlIwebsite。com:8080document702匹配702因为正则的优先级更高,而且正则是一旦匹配到就直接退出所以不会再匹配703server{servernamewebsite。locationdocume。{return701;}locationdoc{return702;}locationdocument{return703;}}curlhttp:website。comdocumentHTTP1。1702匹配702因为精确匹配的优先级比正则高也是匹配到之后支持退出server{servernamewebsite。locationdoc{return702;}locationdocu{return701;}}701前缀匹配匹配是按照最长匹配,跟顺序无关history模式、跨域、缓存、反向代理html设置history模式location{indexindex。htmlindex。proxysetheaderHhistory模式最重要就是这里tryfilesuriuriindex。index。html文件不可以设置强缓存设置协商缓存即可addheaderCacheControlnocache,mustrevalidate,proxyrevalidate,maxage0;}接口反向代理locationapi{跨域处理设置头部域名addheaderAccessControlAllowO跨域处理设置头部方法addheaderAccessControlAllowMethodsGET,POST,DELETE,OPTIONS,HEAD;改写路径rewriteapi(。)1反向代理proxypasshttp:proxysetheaderH}location。(?:css(。map)?js(。map)?gifsvgjfificocurheicwebptiff?mp3m4aaacoggmidi?wavmp4movwebmmpe?gaviogvflvwmv){静态资源设置七天强缓存expires7d;}以目录去区分多个history单文件
  因为不可能每一个项目开启一个域名,仅仅指向通过增加路径来划分多个网站,比如:www。taobao。comtmalllogin访问天猫的登录页面
  www。taobao。comalipaylogin访问支付宝的登录页面server{listen80;servernametaobao。indexindex。htmlindex。通过正则来匹配捕获〔tmallalipay〕中间的这个路径location(〔〕)(。){tryfilesuriuri1distindex。html404;}}负载均衡
  基于upstream做负载均衡,中间会涉及一些相关的策略比如iphash、weightupstreambackserver{哈希算法,自动定位到该服务器保证唯一ip定位到同一部机器用于解决session登录态的问题server127。0。0。1:9090(down表示单前的server暂时不参与负载)server127。0。0。1:8080weight2;(weight默认为1。weight越大,负载的权重就越大)server127。0。0。1:6060;server127。0。0。1:7070(其它所有的非backup机器down或者忙的时候,请求backup机器)}灰度部署
  如何根据headers头部来进行灰度,下面的例子是用cookie来设置
  如何获取头部值在nginx中可以通过httpxxx来获取变量upstreamstable{serverxxxmaxfails1failtimeout60;serverxxxmaxfails1failtimeout60;}upstreamcanara{serverxxxmaxfails1failtimeout60;}server{listen80;设置默认根据cookie头部设置接入的服务if(httpcookiettsversionidcanara){}if(httpcookiettsversionidstable){}location{proxypasshttp:proxysetheaderHproxysetheaderXRealIPproxysetheaderXForwardedFindexindex。htmlindex。}}优雅降级
  常用于ssr的node服务挂了返回500错误码然后降级到csr的cos桶或者nginx中
  优雅降级主要用errorpage参数来进行降级指向备用地址。upstreamssr{serverxxxmaxfails1failtimeout60;serverxxxmaxfails1failtimeout60;}upstreamcsr{serverxxxmaxfails1failtimeout60;serverxxxmaxfails1failtimeout60;}locationssr{proxypasshttp:开启自定义错误捕获如果这里不设置为on的话会走向nginx处理的默认错误页面捕获500系列错误如果500错误的话降级为下面的csr渲染errorpage500501502503504csrlocationerrorpage500501502503504200csrlocation注意这上面的区别等号前面没有200表示最终返回的状态码已csrlocation为准加了200的话表示不管csrlocation返回啥都返回200状态码}locationcsrlocation{这时候地址还是带着ssr的要去除rewritessr(。)1proxypasshttp:}
  webp根据浏览器自动降级为png
  这套方案不像常见的由nginx把png转为webp的方案,而是先经由图床系统(node服务)上传两份图片:一份是原图png
  一份是png压缩为webp的图片(使用的是imageminwebp)
  然后通过nginx检测头部是否支持webp来返回webp图片,不支持的话就返回原图即可。这其中还做了错误拦截,如果cos桶丢失webp图片及时浏览器支持webp也要降级为pnghttp{includeetcnginxmime。设置日志格式logformatmainremoteaddrremoteuser〔timelocal〕accesslogvarlognginxaccess。keepalivetimeout65;开启gzipcomplevel6;负载均衡这里可以是多个cos桶地址即可upstreamstaticenv{}map设置变量映射第一个变量指的是要通过映射的key值Accpet第二个值的是变量别名maphttpacceptwebpsuffix{默认为空字符串正则匹配如果Accep含有webp字段设置为。webp值webp。}server{listen8888;取消绝对路径的重定向网站主页路径。此路径仅供参考,具体请您按照实际目录操作。location{indexindex。htmlindex。proxysetheaderHtryfilesuriuriindex。addheaderCacheControlnocache,maxage0;}favicon。icolocationfavicon。ico{}robots。txtlocationrobots。txt{}location。(pngjpe?g){PassWebPsupportheadertobackend如果header头部中支持webpif(webpsuffixwebp){先尝试找是否有webp格式图片rewrite(。)。(pngjpe?g)1。找不到的话这里捕获404错误返回原始错误注意这里的号代表最终返回的是staticimg的状态吗errorpage404}addheaderVaryAproxypasshttp:proxysetheaderHexpires7d;}locationstaticimg{rewrite。proxypasshttp:proxysetheaderHexpires7d;}assets,medialocation。(?:css(。map)?js(。map)?gifsvgjfificocurheicwebptiff?mp3m4aaacoggmidi?wavmp4movwebmmpe?gaviogvflvwmv){proxypasshttp:proxysetheaderHexpires7d;}errorpage50050250350450x。location50x。html{}}}
投诉 评论 转载

燃烧我的卡路里,野小兽智能水阻划船机R30上手体验前沿想必这个时候各位小伙伴们都已返回到工作岗位开始新一年的奋斗了吧,过年期间每天糊吃海吃有没有长肉肉呢?毕竟每逢佳节胖10斤啊。新年期间来往亲戚家里拜年的同时有没有坚持每……三部门调整免征车辆购置税新能源汽车产品技术要求IT之家5月13日消息工信部、财政部、税务总局联合发布《关于调整免征车辆购置税新能源汽车产品技术要求的公告》。IT之家了解到,公告指出,插电式(含增程式)混合动力乘用车纯……周氏生物CEO郭民阐述企业管理到底是在管理什么有很多的管理者不知道企业管理的管理是什么,其实很简单,企业管理的核心就是用户,周氏生物CEO郭民表示如果没有用户,或者没有创造用户的能力,就没有企业存在的必要,更没有企业管理的……开学季大促来袭骁龙8系旗舰手机选购指南时间来到八月中旬,除了盛夏时节即将结束,秋季即将来临之外,随之而来的还有全国各地陆续开始的开学季;当然,也少不了来自电商平台以及手机厂商针对上半年上市的各种旗舰新机的打折力度颇……特斯拉柏林超级工厂也已安装美的旗下库卡工业机器人4月27日消息,据国外媒体报道,在此前的财报中,特斯拉曾披露上海超级工厂的Model3和ModelY生产线上,都安装有大量美的旗下库卡公司的机器人。而特斯拉最新的财报显示……工程师回归新系统稳了!魅族Flyme8已在路上Q4或将发布今年初,网友在微博中提及Flyme时,魅族黄章少见的进行了回复,并表示Flyme8正在路上。作为Flyme7之后的大版本更新,从去年开始网友便展开了对这一新系统的猜测与讨论。而……nginx前端到底用来做啥这篇文章是收集我在工作中经常会用到的nginx相关知识点,本文并不是基础知识的讲解更多的是一些方案中的简单实现。location的匹配规则表示精确匹配。只有请求的url路径与后……华为公开电池健康状态的估算方法专利,涉及智能汽车领域IT之家4月30日消息企查查App显示,近日,华为公开电池健康状态的估算方法、电池管理装置及电池管理系统专利,公开号为CN112740056A。IT之家获悉,专利摘要显示……2。1秒破百,马斯克特斯拉ModelSPlaid版交付时间将IT之家5月29日消息今日下午,特斯拉CEO埃隆马斯克(ElonMusk)通过社交媒体表示,特斯拉ModelSPlaid版交付时间将推迟至6月10日,还需要一周的调整时间。……C919的机腹为什么是鼓起来的?这个问题的提出说明出题人观察还比较细致,其实C919机翼和机身融合处比较鼓,还是因为总体与气动设计要求,老鹰航空来简单回答一下吧:1、C919采用的是下单翼设计;现……有钱却缺人,中国电动车技术人才不足从工程师到工人5月28日消息,中国内地智能电动汽车(EV)行业的技术人员短缺,正成为工程师、工人乃至后勤人员的福音。这些希望在中国蓬勃发展的汽车市场中抢占更大份额的汽车制造商,正努力吸引更多……华为公开无线充电车位泊车相关专利,可推荐无线充电最佳车位IT之家5月27日消息企查查App显示,近日,华为技术有限公司公开一种无线充电车位泊车推荐方法及系统专利,公开号为CN112840388A,申请日期为2021年1月。专利……
最新电脑配置推荐与方向北京警方清理下架2万多个违法违规应用程序央行银保监会公布首批19家系统重要性银行名单又一家电池企业破产重整,曾为宁德时代比亚迪代工23万买下Mdoel3,用车成本高不高?算算就知道了戴耳背式助听器为什么要配耳膜?三大坏消息传来短期内原价购买已无望,开学装机显卡怎么选?iQOOZ3上手体验,低价高配说的可能就是它?500公里的来了!新能源补贴车型续航里程继续提升国产手机品牌的又一个里程碑,封锁和打压只会让我们变得更强大手机剩1的电,能用多久?你知道吗?拖欠已久的新年壁纸,全部免费送
把期货投资程序化方可步步为赢电动车醉驾肇事是否会被处罚?云南龙陵发现新物种高黎贡球兰约会圣诞的夜晚作文能力人品不能划等号?这8位运动员告诉你,张继科代表不了国家队奇瑞研发铺路swisse眼霜作用功效swisse眼霜使用感受褪去浮华我真想半命题作文理想点亮人生秋天真美

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形