nginx反向代理请求类似资产的多个应用程序

时间:2016-05-09 20:58:54

标签: nginx proxy reverse-proxy nginx-location

我有几个应用程序位于:

http://www.foo.com:80
http://www.bar.com:42
http://www.baz.com:1337

我试图用一台nginx机器反向代理。我现在面临的问题是这些应用程序正在请求名称相同但内容不相同的文件:

location /bootstrap.css {
 proxy_pass http://www.foo.com:80/bootstrap.css;
}

location /bootstrap.css {
 proxy_pass http://www.bar.com:42/bootstrap.css;
}

location /baz {
 proxy_pass http://www.baz.com:1337;
}

location /foo {
 proxy_pass http://www.foo.com:80/;
}

我是否可以重新编写来自特定应用程序服务器的所有响应以指向它的应用程序子文件夹?

例如:重定向

http://www.foo.com:80/* 

/foo

1 个答案:

答案 0 :(得分:0)

您可以设置以下内容:

location /foo {
    proxy_pass http://www.foo.com:80;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

但是,您的应用程序foo可能需要知道这一点。例如,见post

修改

使用sub_filter from ngx_http_sub_module

,Nginx可以做你想做的事

请尝试以下示例:answer 1answer 2