核心规则
Location 匹配规则
location /proj1/:精确前缀匹配,要求路径以/proj1/开头location /proj1:宽泛前缀匹配,/proj1、/proj1/、/proj1abc都会匹配
Proxy_pass 路径处理规则
| proxy_pass 格式 | 处理方式 | 说明 |
|---|---|---|
http://... (无斜杠) | 保留完整路径 | location 匹配部分 + 剩余路径都转发 |
http://.../ (有斜杠) | 替换 location 匹配部分 | 只转发 location 匹配后的剩余路径 |
一、后端有配置项目名
- 后端
server:
port: 8080
servlet:
context-path: /proj1
- Nginx
location /proj1 {
proxy_pass http://localhost:8080;
}
#或者
location /proj1/ {
proxy_pass http://localhost:8080;
}
二、后端没有配置项目名
- 后端
server:
port: 8080
- Nginx
location /proj1/ {
proxy_pass http://localhost:8080/;
}
访问http://localhost/proj1/test。
-
proxy_pass http://.../有斜杠,会替换掉 location 匹配的部分 -
/proj1/test中的/proj1/会被替换成/,剩余test部分