質問: サーバーA(nginx)、サーバーB(nginx)の二台を用いてリバースプロキシを構成しました。 A-B間はローカル接続しています。 ドメインは(www.)example.comとします。 サーバーAはポート443で通信を行い(フロント)、サーバーBはポート80でAと通信を行っています(バックエンド)。 Client -(インターネット)- A(443) -(ローカル接続)- B(80) クライアントはAへアクセスした際、暗号化された通信を行いますが、BがAへ通信を行う時はSSL対応していないので暗号化通信出来ません。 バックエンドがフロントへ通信する場合にもSSL対応をしたいのですが、良い方法はありますか? ※追加 OSはubuntu、CMSにwordpressを使用しています。
回答: こんにちは。 ローカル通信なのでSSLは不要かなと思いましたが 以下やり方はいかがでしょうか? nginx:example.com:443 -> |何かしらの処理| -> nginx:localhost:80 の通信の流れかと思います。 この場合何かしらの処理の部分が課題になるかと思います。 この何かしらの処理にドメインをつけてあげます。 SSLでポートがかぶるので8をつけた443とします。 nginx:example.com:443 -> nginx:backend.example.com:8443 -> nginx:localhost:80 この場合インターネットに出てします。 そこでhostsファイルで自分自身に指定してあげます。 OSわからないので、以下のような感じですかね。 ``` backend.example.com localhost:8443 ``` そうするとhostsファイルが優先的に解決されますので、 外に出ないで自分の8443ポートを見に行きます。 後は 443で設定した内容を 8443でもう一個ファイルを作ってあげて、平文化してから80へproxyしてあげれば出来るかと思います。 注意書き このやり方は環境に依存する可能性があるため、積極的に使用しないほうが良いと思います。 私の主観ですが、なるべくLAN内で参照できる構成のほうが運用しやすいと思います。