nginx - 将位置重写到服务器的根目录

时间:2017-12-04 00:44:33

标签: nginx

我有nginx.conf nginx配置:

http {    
    ...

    upstream app_servers {
        server admin;
    }
    upstream status_servers {
        server status:5000;
    }

    # Configuration for the server
    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        location / {
            proxy_pass         http://app_servers;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
        location /api {
            proxy_pass         http://api_servers;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
    }
}
  • /是一台服务器的服务器,
  • /api到另一个api服务器。

问题在于第二个(api服务器)。

当我希望它们到达api服务器的根目录时调用到达/api/**(基本上在调用api服务器时删除/ api)。

所以打电话

  • /api - >将在api服务器中到达/并致电
  • /api/foo - >将在api服务器中到达/foo

我想我正在为此寻找某种改写(?)

我在/api位置内进行了尝试:

rewrite ^/api(.*) /$1 last;

但它似乎没有用。

任何形式的帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

使用rewrite ^/api(/.*)$ $1 break;

解决了问题

但我不能只使用/api - 它必须是/api/(尾随/

对我而言,如果有人知道如何支持/api,那很好,很有趣。