私はnginxが同じポートで httpおよびhttpsリクエストを処理できるかどうか疑問に思っていました。[*]
これは私がやろうとしていることです。http要求を処理するWebサーバー(lighttpd)と、httpsを介してドキュメントツリーの特定のセクションを処理するCプログラムを実行しています。これら2つのプロセスは同じサーバーで実行されます。
ファイアウォールレベルでは、このサーバーにトラフィックを転送するポートを1つだけ持つことができます。したがって、私がやりたいのは、このサーバーでnginxを設定して、単一のポートでリクエストをリッスンしてから:
A)すべてのhttp://myhost.com/ *リクエストをリダイレクトして、localhost:8080(lighttpdがリッスンしている場所)に移動します。
B)ユーザーが、https:// myhost.com/appなどで始まるURLを要求した場合、その要求はlocalhost:8008(Cプログラム)に送信されます。この場合、リモートブラウザーとnginx間のトラフィックは暗号化する必要があることに注意してください。
これは可能だと思いますか?もしそうなら、どのようにそれを行うことができますか?
2つの異なるポートを使用してこれを行う方法を知っています。私が直面している課題は、1つのポートだけでこれを行うことです(残念ながら、この特定の環境でファイアウォールの構成を制御することはできません。そのため、回避できない制限です)。sshを介したリバースポートフォワーディングなどの技術を使用してファイアウォールをバイパスすることも機能しません。これは、Webブラウザーとインターネットリンクしかないリモートユーザーに対して機能するはずです。
これがnginxの機能を超えている場合、この要件を満たすことができる他の製品を知っていますか?(これまでのところ、これをlighttpdとpoundで設定することに失敗しました)。また、Apacheを避けることも好みます(ただし、Apacheが唯一の選択肢である場合は使用してもかまいません)。
事前に感謝、アレックス
[*]明確にするために、同じポートを介した暗号化および非暗号化HTTP接続の処理について説明しています。暗号化がSSLまたはTLSのどちらを介して行われるかは関係ありません。