Nginxの背後にはexample.com
のレールがあります。 example.com/foobar
は、そのレールアプリをパス/foobar
で叩くでしょう。Nginxプロキシは、リモートサーバー上の特定のファイルへのパスの下にあります。
私が追加したいのは、example.com/spa/*
はリモートサーバー(この場合はs3バケットですが、それは重要ではありません)から特定のファイルを読み込むことです。
だから、私はそうのようなものをマッピングするnginxのしたいと思います:
example.com/ -> rails app with path/
example.com/foo -> rails app with path /foo
example.com/bar?what=ever -> rails app with path /bar?what=ever
example.com/spa -> my-bucket.amazonaws.com/index.html
example.com/spa/foo -> my-bucket.amazonaws.com/index.html
example.com/spa/bar?what=ever -> my-bucket.amazonaws.com/index.html
それはちょうど
location/{
proxy_redirect off;
proxy_pass http://app_server;
}
(他の場所で定義さupstream app_server
付き)
だイージー最初の3例があります2番目の3つの例では、どうやってやるのか分かりません。
TLDR:特定のパスの下にあるすべてのものを、リモートサーバー上の単一のファイル/パスにどのようにプロキシしますか?
https://coderwall.com/p/rlguog/nginx-as-proxy-for-amazon-s3-public-private-files – Hackerman
ありがとうございますが、それは私が行っている問題に対処していないようですここに。私のサーバ上のs3- '/ foo/bar'上のパスを私のサーバ上のパスをプロキシすることは、s3の'/bar'に行き、 '/ foo/baz'はs3の' /baz'に行きます。 私がやろうとしていることは、自分のサーバ上のパスにあるすべてのリクエストを、s3上の1つのファイルに転送することです:サーバ上の '/ foo/bar'はs3の'/a_file'に行き、 '/ foo/baz 's3の'/a_file'にも行きます。 – Fishtoaster
私が間違っている場合は私を許してください。しかし、1つのファイルのみを扱っている場合は、バケツにリダイレクトできますか?これは意図ではありませんか? –