当我连接到:
http://localhost/api?foo=bar
Nginx将我重定向到:
http://localhost/api/?foo=bar
因此,我的支持者无法正确响应。
我尝试将位置更改为location /api
,然后问题解决了,但它也与http://localhost/apiapi?foo=bar
之类的东西匹配,我不希望这样。
这是我的配置:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:3000;
}
}
答案 0 :(得分:0)
您要使用URI /api
来访问您的服务。
除非添加了额外的location /api/
(Nginx会通过重定向自动附加),否则/
与该API不匹配。
location /api
也匹配任何以相同的三个字符开头的URI。
由于您的服务仅需要响应单个URI,因此您可以使用完全匹配location
。
例如:
location = /api {
...
}
有关详细信息,请参见this document。