Nginx全局变量
https://www.jianshu.com/p/deccac3a4fd0
https://www.jianshu.com/p/44680c081ea0
Nginx配置https
root与alias区别
#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ {
alias /var/www/image/;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件
location /img/ {
root /var/www/image;
}
alias后面必须要用“/”结束,否则会找不到文件,而root则可有可无。
文件目录匹配规则
参数 | 含义 |
---|---|
-f 和 !-f | 用来判断是否存在文件 |
-d 和 !-d | 用来判断是否存在目录 |
-e 和 !-e | 用来判断是否存在文件或目录 |
-x 和 !-x | 用来判断文件是否可执行 |
正则表达式匹配规则
模式 | 含义 |
---|---|
location = /uri | = 表示精确匹配,只有完全匹配上才能生效 |
location ^~ /uri | ^~ 开头对URL路径进行前缀匹配,并且在正则之前 |
location ~ pattern | ~ pattern 开头表示区分大小写的正则匹配 |
location ~* pattern | ~* pattern 开头表示不区分大小写的正则匹配 |
location /uri | 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后 |
location / | / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default |
正则表达式的运用:用()进行匹配分组,用 $1
表示第一组即第一个被()包含的匹配字符串,同理如果有多组匹配,也可以使用$2
、$3
例如:这个转发规则就是把/resource开头,.html结尾的所有请求,转发到原请求链接基础上去除.html的链接
# 这个location是所有pdf下载,是通过OA的接口进行下载的,现在因为gateway只能传输pdf,所以不走接口,直接下载静态文件(也就是把结尾的.html去掉)
location ~ ^/resource/(.*)\.html {
proxy_pass http://127.0.0.1:8080/resource/$1;
}
# 这个location是上面两个location经过proxy_pass之后的结果,直接指向了硬盘的静态资源
location /resource/ {
root C:/;
}
负载均衡
upstream mid-balance {
server 127.0.0.1:8099 weight=1 max_fails=3 fail_timeout=2;
server 127.0.0.1:9099 weight=1 max_fails=3 fail_timeout=2;
server 127.0.0.1:10099 backup;
}
upstream常用重要参数说明
参数 | 含义 |
---|---|
weight | 负载均衡的比重,负载到当前节点的概率为weight/Σweight |
max_fails | 最大连接失败次数 |
fail_timeout | 连接失败超时时间(超过这个时间就认为失败1次,连续超过max_fails就认为该节点不可用) |
backup | 备份节点,当其它节点被检测到都不可用的时候,会使用该节点 |