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を使用していました)。
nginxは、SSLを終了しないとSSLを通過できません。これに対応したnginx(少なくともバージョン1.5)の前でhaproxyを使用して、RD Webトラフィックをターミナルサーバーにプロキシし、その他すべてをnginxにプロキシします。
今日、nginxはsslパススルーをサポートしています: https://serversforhackers.com/tcp-load-balancing-with-nginx-ssl-pass-thr
バージョン1.11.5以降、nginxはSNI対応のパススルーSSLプロキシをサポートしています: http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html