nginx proxy_passでリクエストURLを保存する方法

概要

シン アプリ サーバーを使用しようとしていたのですが、問題が 1 つありました。

nginx が proxy_pass http://my_app_upstream を使用してリクエストを Thin (または Unicorn) にプロキシする場合。アプリケーションは、nginx によって送信された変更された URL (http://my_app_upstream) を受信します。

私が望むのは、アプリがそれに大きく依存しているため、元の URL とクライアントからの元のリクエストを変更せずに渡すことです。

nginx のドキュメントには次のように書かれています。

しかし、関連サンプルが実際に URI を使用しているため、それを正確に構成する方法がわかりません。

location  /some/path/ {
  proxy_pass   http://127.0.0.1;
}

それで、クライアントからの元のリクエスト URL を保存する方法を見つけるのを手伝ってもらえますか?

解決策

proxy_set_header ディレクティブが役立つと思います。

location / {
    proxy_pass http://my_app_upstream;
    proxy_set_header Host $host;
    # ...
}