web-dev-qa-db-ja.com

SSL終了のないNginxリバースプロキシ

Windows 2k12サーバーにMicrosoftリモートデスクトップWebサービスをセットアップしようとしています。これは完全に機能しますが、リバースプロキシ(Nginx)をその前に配置したいと思います(必要です)。

私は1つの外部IP(修正済み)しか持っておらず、その背後にある複数のWebサイトをホストしていますが、すべて同じVM上ではありません。私はなんとかvginでNginxをHTTPとHTTPSの両方のトラフィックのリバースプロキシとして機能させることができました。ただし、リモートデスクトップサービスの場合、SSLオフロードにより、アプリケーションの起動時に問題が発生します。そこで、SSLオフロードなしでNginxサーバーを介してトラフィックを渡し、WindowsサーバーにすべてのSSL処理を実行させたいと思います。 「ssl on」と入力しなくても、 Nginxは、別の仮想ホストからの証明書をRD Webのサーバーセクションに配置します。私の構成のどこにも「デフォルトブロックのようなものはありません。

以下は、設定がどのように見えるかを示す「スケッチ」です。

                                                           -- |server 1 HTTP|
|internet user| -- |Nginx Rev Proxy listening on port 443| -- |windows server|
                                                           -- |server 2 HTTP|

以下は、私が持っている(RD Web用の)構成ファイルです。

server {
        listen 443;
        server_name Host.domain.com;

        access_log /var/log/nginx/Host.domain.com.access.log;

        location / {
                proxy_set_header        Host $Host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;
                proxy_pass              https://172.29.0.249;
        }

}

私はすでにWindowsサーバーにプレーンHTTPを受け入れさせようとしましたが、これもリモートデスクトップアプリケーションに問題を引き起こします。ログインするところまで行けば止まります。すでに述べましたが、ファイアウォールのポート443をWindowsサーバーに転送すると、リモートデスクトップ接続は問題なく動作するため、問題はないようです。

ここでどんな助けでも大歓迎です。私はNginxとその構成に不慣れです(以前は常にApacheを使用していました)。

5
Goez

nginxは、SSLを終了しないとSSLを通過できません。これに対応したnginx(少なくともバージョン1.5)の前でhaproxyを使用して、RD Webトラフィックをターミナルサーバーにプロキシし、その他すべてをnginxにプロキシします。

1
Michael Hampton

今日、nginxはsslパススルーをサポートしています: https://serversforhackers.com/tcp-load-balancing-with-nginx-ssl-pass-thr

7
Tom

バージョン1.11.5以降、nginxはSNI対応のパススルーSSLプロキシをサポートしています: http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html

1
ValdikSS