1. ホーム
  2. ruby

[解決済み] nginxのproxy_passでリクエストのurlを保持する方法

2023-03-18 11:56:37

質問

私は 薄型 アプリサーバを使おうとして、1つの問題がありました。

nginx の場合 プロキシ を使用して Thin (または Unicorn) にリクエストをプロキシします。 proxy_pass http://my_app_upstream; を使うと、アプリケーションは nginx から送られた修正された URL を受け取ります ( http://my_app_upstream ).

私が欲しいのは、アプリがそれに大きく依存しているため、クライアントからのオリジナルのURLとオリジナルのリクエストを修正せずに渡すことです。

nginxの doc は言う。

もし、URI を未処理のまま転送する必要があるならば を転送する必要がある場合は、ディレクティブ ディレクティブの proxy_pass は URI の部分なしで使用されるべきです。 の部分なしで使用されるべきです。

しかし、関連するサンプルでは実際に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;
    # ...
}