nginx配置禁特定路径下的反向代理

近期因为项目需要再一次配置了nginx 这次的的需求设计到字符串处理 需要把<域名或ip>/xhr_api/开头的请求转发到内网某机器,同时移除掉xhr_api,这里直接记录下结果,配置非常简单

1
2
3
4
5
6
7
8
9
10
11
12
13
location ~ ^/(xhr\_api/)(.*)$ {
# return 200 "$1,$2,$3"; #$2是被括号包起来的内容
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_http_version 1.1;
proxy_set_header Connection "";

# 不需要考虑到负载的,就无需配置upstream节点。
proxy_pass http://127.0.0.1:5678/$2;# 这里$2前面的/是因为`^/(xhr\_api/)(.*)$`正则已经匹配了`/` 所以取不到`/`在这里补上了
proxy_redirect off;
}

参考