単純なプレフィックスlocationでは、末尾のスラッシュがバックエンドに/api/usersを渡すか/usersを渡すかを決めることがあります。バックエンドの実際のルートに合う形式を選びます。
バックエンドのルートに/apiが含まれる場合
このlocationをserverブロック内に置きます。
nginx
location /api/ {
proxy_pass http://127.0.0.1:3000;
}
/api/users?page=2へのリクエストは、同じパスとクエリのままバックエンドに届きます。upstreamアドレスの後に置換用URIがないためです。
バックエンドのルートが/usersから始まる場合
代わりに次を使います。
nginx
location /api/ {
proxy_pass http://127.0.0.1:3000/;
}
