web-dev-qa-db-ja.com

Nginx proxy_pass to IP、ただしHTTPSを使用

example.comのSSL証明書を介して保護されているレガシーサーバーがあります。このサーバーの前に別のサーバーをproxy_pass特定の(レガシー)トラフィックに配置したいと思います。新しいサーバーはexample.comでも公開する必要があります。

これらが別々のドメイン(legacy.example.comexample.com)にある場合、私は単にproxy_pass https://legacy.example.comを実行できます。ただし、レガシーアプリにはハードコードされたexample.com URLが散らばっています(また、example.comのSSL証明書しかありません)。その他のURL(IPなど)はexample.comにリダイレクトされます。

私がやりたいのはproxy_pass <legacy IP>で、Hostヘッダーをproxy_set_header Host example.comで設定します。ただし、問題は、これがHTTPSを使用しないことです。

しばらく前にcurlで何かをしましたが、IPでサーバーに接続できましたが、証明書に使用するドメインを指定しました。このIPへのexample.comマッピングのAレコードはありませんでしたが、そのドメインによって接続されていると思わせることができました。

curl https://example.com/path --resolve example.com:<IP>

Nginxにこのようなものはありますか?

2
Chris Smith

自分で使ったことはありませんが、proxy_ssl_nameあなたが探しているものかもしれません:

例えば:

proxy_set_header Host example.com;
proxy_ssl_name        example.com;
proxy_pass            https://1.2.3.4;

詳細については、 このドキュメント を参照してください。

3
Richard Smith