0

次の場所にいくつかのアプリケーションがあります。

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

1台の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
4

1 に答える 1

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 はこれについて知る必要がある場合があります。たとえば、この投稿を参照してください。

編集:

Nginx は、ngx_http_sub_module の sub_filterを使用して、必要なことを実行できる場合があります

次の例を試してください:回答 1回答 2

于 2016-05-09T21:21:03.947 に答える