如何在子域的不同路径上托管应用程序?

如何在子域的不同路径上托管应用程序?

我有两个应用程序“foo”和“bar”分别在端口 4560 和 4570 上运行。

它们都有类似于/api/v1/hello和 的路径/api/v1/world

我正尝试通过以下方式访问它们:

我有以下 NGINX 配置:

server {
    server_name src.saurabh.sm www.src.saurabh.sm;

    proxy_set_header      Connection "";                 
    proxy_http_version    1.1;                           
    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-Proto               $scheme;
    add_header            Access-Control-Allow-Methods    'GET, POST, OPTIONS';

    location /foo/ {
        rewrite ^/foo/?(.*)$ /$1 break;
        proxy_pass http://localhost:4560/;
    }

    location /bar/ {
        rewrite ^/bar/?(.*)$ /$1 break;
        proxy_pass http://localhost:4570/;
    }
}

应用程序的主页(http://localhost:4560/foo/http://localhost:4570/bar/)运行正常,但单击网页上的任何链接都会返回 404,因为链接中没有foo和。bar

从终端,我可以像这样访问它们:

  • curl http://localhost:4560/foo/api/v1/hello

  • curl http://localhost:4560/foo/api/v1/world

  • curl http://localhost:4570/bar/api/v1/hello

  • curl http://localhost:4570/bar/api/v1/world

我如何确保foobar位于浏览器中所有端点之前?

相关内容