问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Nginx配置转发

发布网友 发布时间:2022-12-07 15:48

我来回答

1个回答

热心网友 时间:2023-01-25 04:17

location 匹配规则
语法规则

模式 含义
location = /uri = 表示精确匹配,只有完全匹配上才能生效
location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。
location ~ pattern 开头表示区分大小写的正则匹配
location ~* pattern 开头表示不区分大小写的正则匹配
location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后
location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default

前缀匹配时,Nginx 不对 url 做编码,因此请求为 /static/20%/aa,可以被规则 ^~ /static/ /aa 匹配到(注意是空格)

多个 location 配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):

注意:前缀匹配,如果有包含关系时,按最大匹配原则进行匹配。比如在前缀匹配:location /dir01 与location /dir01/dir02,如有请求 http://localhost/dir01/dir02/file 将最终匹配到 location /dir01/dir02

例子,有如下匹配规则:

location = / {
echo "规则A";
}
location = /login {
echo "规则B";
}
location ^~ /static/ {
echo "规则C";
}
location ^~ /static/files {
echo "规则X";
}
location ~ .(gif|jpg|png|js|css) {
echo "规则E";
}
location /img {
echo "规则Y";
}
location / {
echo "规则F";
}

那么产生的效果如下:

访问 http://localhost/category/id/1111 则最终匹配到规则 F ,因为以上规则都不匹配,这个时候应该是 Nginx 转发请求给后端应用服务器,比如 FastCGI(php),tomcat(jsp),Nginx 作为反向代理服务器存在。

所以实际使用中,笔者觉得至少有三个匹配规则定义,如下:

location = / {
proxy_pass http://tomcat:8080/index
}

location ^~ /static/ {
root /webroot/static/;
}
location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {
root /webroot/res/;
}

location / {
proxy_pass http://tomcat:8080/
}

rewrite 语法

1、下面是可以用来判断的表达式:

2、下面是可以用作判断的全局变量

redirect 语法

server {
listen 80;
server_name start.igrow.cn;
index index.html index.php;
root html;
if ( ") {
rewrite ^(.*) http://star.igrow.cn$1 redirect;
}
}

防盗链

location ~* .(gif|jpg|swf) invalid_referer) {
rewrite ^/ http://$host/logo.png;
}
}

根据文件类型设置过期时间

location ~* .(js|css|jpg|jpeg|gif|png|swf) request_filename) {
expires 1h;
break;
}
}

禁止访问某个目录

location ~* .(txt|doc)${
root /data/www/wwwroot/linuxtone/test;
deny all;
}

参考文档资料链接
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华为手机自动重启怎么回事 保护专利权的法律方法是什么 ...个盘提示“设备1/0错误,无法打开”,我得找里面的文件,怎么办... 地震来临时如何逃生 2024年河北历史类632分能考上什么大学? 2024年河南文科632分能考上什么大学? 2024年广西理科632分能考上什么大学? 2024年江苏历史类632分能考上什么大学? 2024年广东632分能考上什么大学? 2024年黑龙江文科632分能考上什么大学? Nginx - proxy_pass路径的唯一拼接规则 Nginx正则匹配详解 nginx匹配规则说明以及匹配的优先级 nginx location匹配规则一般匹配和精准匹配 透明胶带都是什么材质的 7年没涨的股票会涨吗 某股票rsi(5)等于95 为啥总有白马股在大盘涨的时候会跌 中国股市4月36号怎么了 上证指数会再次探底吗 章盟主与老赵哥买入的股票好吗 有谁知道36区是曼舞飞天,37区药师琉璃,41区天道帝释,76区黄泉孟婆,总共... 病毒性感冒好后头晕打天麻素就以吗 头昏吃天麻素片和二十五味珊瑚胶襄管用吗? 请问天麻可以治头眩晕吗? 天麻能治疗眩晕吗 天麻注射液可以冶疗神经衰弱头晕吗 从此把你藏心底梦里梦外都是你是什么歌名 歌词有一句藏在心底是什么歌 心底往事藏心里粤语是什么歌曲 hpinktankwireless411喷墨打印机上面图标复印是 2008鼠年有没有发行这种版式的生肖邮票啊? 邮票预定问题,小版张怎么不让定?请进!!! 红花郎鼠年纪念酒是否有收藏价值 中国银行预结汇汇入汇款交易限额是多少? ...地主一小王一a 3个k对q对j一10一9一8一5求地主咋赢 此致敬礼的正确格式及范文 一个根本问题——我是谁? 怎么通过查询银行卡号码 平安银行贷款靠不靠谱呀?有的担心。 平安银行贷款怎么样?我急用钱。 平安银行靠谱吗?贷款快不快? 平安银行靠谱吗?我想要借款。 幼儿园活动室怎么设计方案 ...给我们的会员拜年!想带些图片背景还有文字的怎么能弄啊 雨花阁 碧盈 安检闸机有没有金属探测器 成考高起专报的四川理工学院同时自考本科可以报师范院校吗? 冬季插的绿萝没长叶子怎么办? 家里养花一个月了怎么不长新芽 家里养的花不发芽怎么办