![如何在子域的不同路径上托管应用程序?](https://linux22.com/image/793199/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%AD%90%E5%9F%9F%E7%9A%84%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84%E4%B8%8A%E6%89%98%E7%AE%A1%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我有两个应用程序“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
我如何确保foo
并bar
位于浏览器中所有端点之前?