立Flag学习NgLocationampampampRewrite入门及负载均衡
立Flag 学习Ng - Location&Rewrite入门及负载均衡Location Rewrite 负载均衡
参考文档:
https://www.cnblogs.com/dadonggg/p/7797281.html
http://nginx.org/en/docs/http/converting_rewrite_rules.html
https://www.nginx.cn/doc/standard/httprewrite.html
https://www.cnblogs.com/gongjingyun123–/p/11424805.html 补充Ng 的 kill 信号TERM、INT 快速关闭
QUIT从容关闭
HUP平滑重启,重新加载配置文件
USR1 重新打开日志文件
USR2 平滑升级可执行程序 虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能
ng的虚拟主机有基于域名、端口、ip Locationlocation ~* /js/.*/.js 以 = 开头,表示精确匹配;如只匹配根目录结尾的请求,后面不能带任何字符串。 以^~ 开头,表示uri以某个常规字符串开头,不是正则匹配 以~ 开头,表示区分大小写的正则匹配; 以~* 开头,表示不区分大小写的正则匹配 以/ 开头,通用匹配, 如果没有其它匹配,任何请求都会匹配到
location 的匹配顺序是 先匹配普通,再匹配正则 ,正则匹配会覆盖普通匹配 精准匹配: = server{ listen 80; server_name jimmy.cn.com location = /app{ .... } }
如上配置,则当访问为 jimmy.cn.com/app会进入该虚拟主机中 正则匹配
所有的地址都以 /app 开头,所以这条规则将最后匹配到默认请求。当然后面要有最长匹配的规则server{ listen 80; server_name jimmy.cn.com location /app{ .... } }
如果地址是 XXX.xx/app/flagNg 。则会进入这个虚拟主机。要注意的是,当上面的 /app 的虚拟机也存在的时候会按照url的最长匹配匹配到这个虚拟机location /app/flagNg{ .... }
匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条(注意前面的 ^~ )location ^~ /images/ { ... }
匹配所有以 gif,jpg或jpeg 结尾的请求。这里如果请求的url是 /images/.../xx/jpg ,在上面的虚拟主机存在的时候就不会进入这个。location ~* .(gif|jpg|jpeg)$ { ... }
先最长匹配 /images/abc/ 开头的地址location ~ /images/abc/ { ... }
匹配优先级:
(location =) > (location 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (/) Rewrite
rewrite功能就是使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。
rewrite只能放在 server{}, location{}, if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。 语法 : rewrite regex replacement [flag];
rewrite 在多个模块可执行,因此是有执行顺序的 执行server块的rewrite指令
执行location匹配
执行选定的location中的rewrite指令
如果其中某步URI被重写,则重新循环执行。直到找到真实存在的文件;循环超过10次,则返回500 Internal Server Error错误
flag取值 last : 表示完成rewrite break : 停止执行当前虚拟主机的后续rewrite指令集 redirect : 返回302临时重定向,地址栏会显示跳转后的地址 permanent : 返回301永久重定向,地址栏会显示跳转后的地址 last 和 break:
last一般写在server和if中,而break一般使用在location中
last不终止重写后的url匹配,即新的url会再从server走一遍匹配流程,而break终止重写后的匹配
break和last都能停止后面的rewrite指令,但是last后会继续执行location指令。
其实这里可以理解为for循环中的continue和break的区别。
正则表达式: . : 匹配除换行符以外的任意字符 ? : 重复0次或1次 + : 重复1次或更多次 * : 重复0次或更多次 d :匹配数字 ^ : 匹配字符串的开始 $ : 匹配字符串的结束 {n} : 重复n次 {n,} : 重复n次或更多次 [c] : 匹配单个字符c [a-z] : 匹配a-z小写字母的任意一个
小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。正则里面容易让人困惑的是转义特殊字符。 负载均衡
这部分我在之前的文章中有实现。这里简单的重复下 # 轮询 # 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除 upstream xx { server 127.0.0.1:8081; server 127.0.0.1:8082; } # 权重轮询 # 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。down 暂时不参与负载 upstream xx { server 172.17.0.4:8081 weight=2; server 172.17.0.5:8081 weight=1; } # ip_hash # 每个请求按访问ip的hash结果分配,这样同一客户端的请求总是发往同一个后端服务器,可以解决session的问题 upstream xx { ip_hash; server 127.0.0.1:8081; server 127.0.0.1:8082; }
绅士要的封面图(如有侵权联系删除)
全面但不完美,vivoX60Pro迈向行业旗舰的开端我国的手机厂商的出货量占了全球市场的一半以上,但具有产业影响力的产品却并不多,除了华为的Mate系列和P系列之外,其它厂商的产品,很少有在出货量和影响力上都能达到行业旗舰的水准。自
摩托罗拉edgespro,配置拉满的2000元档影像旗舰摩托罗拉近两年在国内市场推出的机型并不是很多,但自其推出edge系列后,以其个性化特征明显的外观设计和均衡的性能配置,重新开始赢得用户的喜欢。近日摩托罗拉又发布了其edge系列的升
从计算摄影到计算光学,华为P50彻底改变了手机影像行业的未来7月29日,在迟到了4个月后,华为今年的影像旗舰P50系列发布,无论对于华为消费者业务还是对于国人,P50已不再只是一款简单的手机产品。对于华为手机而言,P50系列饱含着倔强的精神
华为nova从新青年潮品到Vlog手机新品类的开创者2020年的中国手机市场呈现出总量下行但一些品类迅速上涨的复杂的盘整状态。就2020年第三季度的市场表现来看,整体市场销量同比下降了14。3(IDC的统计数据),但在5G产品和一些
华为MateX2上市,折叠屏终于从实验品走到主力实用机阶段当大家还在揣测华为去年底上市的Mate40系列手机是不是华为手机最终的绝唱之时,2月22日,华为又发布了新一代折叠屏旗舰手机MateX2,从25日的销售策略来看,华为MateX2大
从此不在使用滴滴出租车嘉祥机场到金乡县城区全程27。7公里,呼叫出租车的时候系统显示76元,到地方后出租车的表显示140元,无奈只能先付款,后来第一次打电话给客服,客服说没问题,那个下订单的时候所显示的
地摊经济,应让穷人谋生,莫让富人谋乐。疫情发生以来,中国的经济低迷了将近四个月,这其中实体经济首当其冲。从社会层面来讲,经济行为的放缓让社会资金的流动速度降低。资金缺乏流动,就难以产生效益,社会发展的进程就要大打折扣。
如何正确看待亚马逊封店潮?先说背景,今年6月份,亚马逊以商家刷单刷好评为由总共封禁了5万个头部商家,甚至还冻结了商家上亿的资金,所有的产品链接全部被查封,点进去全部变成dog。其中大部分商家都来自中国深圳,
做亚马逊跨境电商没有发展前景了吗?在目前的时代背景下,大家对电子商务已经有了充分的理解,但有不少人会疑惑,跨境电商又是啥?电商无非是电子商务的简称,在互联网内部网和增值网上以电子交易方式进行交易活动的相关服务活动。
传统游戏与区块链游戏有哪些不一样?自第一款区块链游戏走红迄今,国内区块链游戏领域也迈进了大爆发,各种各样的区块链游戏一下涌进市场,就在今天目前市面上来讲就会有数不胜数不一样称呼但游戏的规则相仿经营模式一样的区块链游
RedmiK40pro配置曝光,相机异常吸睛,售价更感人Redmi生产的手机具有出色的性价比。在今年的5G市场中,Redmi可以说是一个巨大的成功。其中,RedmiK30pro已成为市场上最受欢迎的5G手机,但Redmi随后发布了Red