我如何使用 NGINX 作为反向代理,为我的特定用例传递查询字符串参数

How do I use NGINX as a reverse proxy, passing query string parameters for my specific use case

我有如下所示的 NGINX 配置。

  upstream api {
     ...
  }

server {

  listen 2023; 

  server_name www.server.com;

  location /api/v1/comment/ {

    rewrite /api/v1/comment(.*) /api/v1/comment break;
    proxy_pass http://api/;

  }

以下路径组合有效,return 来自上游的数据 API 但前两个路径有额外的尾部斜杠,这并不理想:

我希望使用以下路径组合:

我一直在努力让这个按原样工作,我想知道是否有任何伟大的 Whosebugers 可以帮助一个人在弄清楚我想要完成的事情时有所帮助。我在网上尝试过的大多数答案都没有用,这是我找到的第一个有用的东西……有点……为了这个目的。

谢谢!

真不敢相信我以前没看到它...

而不是将 /comment/ 保留为重写命令中位置和 /comment 的一部分:

 upstream api {
     ...
  }

server {

  listen 2023; 

  server_name www.server.com;

  location /api/v1/comment/ {

    rewrite /api/v1/comment(.*) /api/v1/comment break;
    proxy_pass http://api/;

  }

我从位置删除了 /comment/ 并从重写命令中删除了 /comment:

 upstream api {
     ...
  }

server {

  listen 2023; 

  server_name www.server.com;

  location /api/v1/ {

    rewrite /api/v1(.*) /api/v1 break;
    proxy_pass http://api/;

  }

这样一来,我就不必在与反向代理进行通信时使用额外的 / 来与 API 进行通信。