Nginx基本概念
Posted 攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx基本概念相关的知识,希望对你有一定的参考价值。
nginx配置文件主要分4部分
main(全局设置): main部分的指令将影响其他所有的设置
server(主机设置): server部分的指令主要作用于指定的主机和端口
upstream(负载均衡服务器设置): upstream指令主要作用于负载均衡的设置
location(指定网页的设置): 主要用于匹配上的网页的设置
location配置规则
匹配符号
= 精确匹配
~ 区分大小写的匹配
~* 不区分大小写的匹配
^~ 以某个字符串开头进行匹配
/ 通用匹配,如果没有其他匹配,任何请求都会匹配上
匹配优先级
location =
> location 完整路径
> location ^~ 路径
> location ~ 、~*
> location 部分起始路径
> /
Rewrite规则
rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如 http://seanlook.com/a/we/index.php?id=1&u=str 只对/a/we/index.php重写。
location和rewrite都能实现跳转,主要区别是:location是对一类路径做控制访问或者反向代理,而rewrite是在同一域名内更改获取资源的路径(因为rewrite只能对域名后边的除去传递的参数外的字符串起作用)
flag标志位
1.last: 完成rewrite之后,将新的url重新匹配server里面的location。(ps: 当flag标志位为空时,默认是
last
)2.break: 完成rewrite之后,网页根目录如果存在指定文件或资源,则直接请求成功,返回200;如果请求内容不存在,则返回404
5.关于 last和break的区别: 可以把
last
当做编程语言中的continue
,完成rewrite,不结束匹配,需要重新去匹配server中的location,break
和编程语言中的break
是一样的,rewrite完成之后,直接退出循环(location匹配),进行下一步操作
设置反向代理
upstream www_koumm_com {
server 127.0.0.1:8000 down;
server 127.0.0.1:7070 backup;
server 192.168.129.22:8000 weight=5;
server 192.168.129.23:8000;
}
server {
listen 80;
server_name www.koumm.com;
access_log logs/www.koumm.access.log main;
location / {
proxy_pass http://www_koumm_com;
}
}
上面的配置文件就实现了初步的负载均衡,所有的请求都会通过proxy_pass转发到后台的服务器,后台的服务器通过upstream建立。upstream结点中的服务器支持4种方式进行请求分配:
1. 轮询(默认)
每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除2. weight
3. ip_hash
4. fair(第三方)
指定轮询的权重,weight和访问成正比,用于后端服务器性能不均的情况
每个请求按访问ip的hash结果分配,确保每位访客固定访问一个后端服务器,可以解决session的问题
按后端服务器响应时间来分配请求,响应时间短的优先
每个设备可以有5种不同的状态:
1. down: 当前server不参与负载
2. weight: weight越大,负载的权重就越大
3. max_fails: 允许请求失败的最大次数(默认为1)
4. fail_timeout: max_fail失败之后,暂停的时间
5. backup: 定义备份机器,只有其他机器在忙或者down的时候,才会分发到backup机器
以上是关于Nginx基本概念的主要内容,如果未能解决你的问题,请参考以下文章
Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段