示例:
Ajax地址:http://localhost/user/login?userName=123&userPassword=123
nginx.conf:
location /user {
proxy_pass http://127.0.0.1:20001/users/manage;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Origin' '*';
}
接口地址:
@GetMapping("users/manage/login")
public Result<String> login(String userName, String userPassword)
由此可以看出, 最后的地址为
http://127.0.0.1:20001/users/manage/login?userName=123&userPassword=123
nginx设置匹配规则, 将其匹配到的元素进行拦截替换, 其他正常拼接。在这里:
通过location匹配user
, 将http://localhost/user
替换为http://127.0.0.1:20001/users/manage
, 剩下的login?...
就拼接在了被拦截替换的地址上。
但是还有一种情况, 如果转发的地址是 /
, 那么将不会将请求的匹配项进行替换, 而是会在后面拼接, 比如:
location /test{
proxy_pass http://127.0.0.1:20001;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Origin' '*';
}
现在请求的地址是:
http://localhost/test/dwgmvp?mvp=Nuguri
那么转发之后的地址是:
http://127.0.0.1:20001/test/dwgmvp?mvp=Nuguri