ウィンドウズ10周年記念版のドッカーウィンドウコンテナを実行していて、IISをコンテナのリバースプロキシとしてセットアップしようとしています。 https://blogs.technet.microsoft.com/virtualization/2016/05/25/windows-nat-winnat-capabilities-and-limitations/では、ローカルホストを使用して内部NAT範囲を参照することは不可能であるため、不可能であることが示唆されているようです。これによって、動的に割り当てられたIPアドレスが残されます。このIPアドレスは、イメージの実行後にdocker inspectコマンドを実行することによってのみ検出できます。より効率的な方法が見過ごされていることを願っています。ドッカーウィンドウコンテナへのリバースプロキシの定義方法
答えて
デフォルトのサブネット上のIPアドレスを各Windowsコンテナに割り当て、ポート80をコンテナからエクスポートすることでこの問題を解決しました。これにより、ARRリバースプロキシルールを導入するための安定したアドレスが得られました。たとえば、次の例では、アドレス172.20.118.129にコンテナを作成し、そのコンテナが要求されたアドレスで実行されていることを確認します。
PS C:\WINDOWS\system32> docker run -d --name myservice --ip=172.20.118.129 microsoft/iis:nanoserver
7d20d8a131805727868ddf85f7c1f455fa2489bb2607b250e694a9e530a61302
PS C:\WINDOWS\system32> docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" myservice
172.20.118.129
また、当社のコンテナの固定IPアドレスを使用しますが、我々は、リバースプロキシを行うにはnginx
で別のコンテナを使用。コンテナホスト(Windows Server 2016)ではDockerだけをインストールし、それ以外はインストールしないという考えがあります。すべての設定はコンテナで行われます。このようにして、別のホストに簡単に移行できます。
これはnginx.conf
はnginx
設定フォルダにコピーされていることをDockerfile nginxのプロキシの
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
ARG NgInxVersion="1.13.5"
ENV NgInxZipUrl="http://nginx.org/download/nginx-${NgInxVersion}.zip"
RUN Invoke-WebRequest -Uri $env:NgInxZipUrl -UseBasicParsing -Outfile c:\\nginx.zip
RUN Expand-Archive -Path c:\\nginx.zip -DestinationPath c:\\nginx
WORKDIR "c:\\nginx\\nginx-${NgInxVersion}"
COPY ./nginx.conf conf\\nginx.conf
ENTRYPOINT powershell .\\nginx.exe
お知らせです。リバースプロキシ設定が含まれています。私たちのサイトのいずれかのためにhttp
ノードから抽出します。我々は新しいコンテナーを追加すると
server {
listen 80;
server_name somesite.mydomain.com;
location/{
proxy_pass http://172.22.108.6/;
}
}
nginx
コンテナは、我々はnginx.confを更新し、nginxのをリロードするPowerShellスクリプトを実行し-p 80:80
で実行する必要があります。 (これはまれになります)
例:
- ユーザーは、ポート
80
がnginxのにさらされているので、私たちのDNSは、当社のコンテナホスト - のIPにsomesite.mydomain.comをリダイレクトhttp://somesite.mydomain.com
- を閲覧コンテナ、リクエストはそこに行く
- nginxはリクエストを代理します
172.22.108.6
- ユーザはipのコンテナで実行中のウェブページを見ています
また、IISとARRを持つコンテナを作成してnginxを置き換えることもできます(ここでのガイドはhttps://chris.59north.com/post/Combining-Windows-Server-2016-Container-ASPNET-5-and-Application-Request)。 -Routing-(ARR)-using-Docker)。しかし、私はnginxがより軽量でセットアップが容易であることを発見しました。 – Rubanov
- 1. ポータルコンテキストでのリバースプロキシとスクリーンスクレイピングの定義
- 2. IISへのApacheリバースプロキシ
- 3. Undertow - REST APIへのHTTP/HTTPSトラフィックを監視するリバースプロキシの設定方法
- 4. リバースプロキシの設定
- 5. HTTPリバースプロキシの動作方法
- 6. ノードHTTPEXへのNGINXリバースプロキシ
- 7. 別のクラスファイルのメソッドへの未定義のリファレンス、修正方法?
- 8. の定義方法
- 9. vscodeのrequireステートメントでの定義への移動方法
- 10. `yylex 'への未定義参照&&` yyin'への未定義参照
- 11. インターフェイスへのインデクサの動作を定義する方法は?
- 12. パテントのリモートデスクトップへのトンネル接続を定義する方法は?
- 13. mysqlデータベースからデータベースのドキュメントテーブル定義ブックへのエクスポート方法
- 14. ユーザー定義型のドロップダウンリストへのデータバインド方法は?
- 15. サイトのリバースプロキシとしてnginxを設定する方法
- 16. 別のコンテナのリバースプロキシとしてのNGINX - 設定ファイルの設定方法
- 17. リバースプロキシ - IPベースの同じマシンへのルーティング
- 18. Nginxのリバースプロキシの設定
- 19. SonarQubeリバースプロキシ設定
- 20. Lighttpdリバースプロキシ設定
- 21. 関数へのポインタを返す関数へのポインタを定義する方法
- 22. ファイルストリームへの静的ポインタを定義する方法は?
- 23. メソッドへのパラメータとしてXMLDocumentを定義する方法
- 24. api-blueprint定義されたホストへの参照方法
- 25. テーブルへのキーの定義
- 26. Apacheリバースプロキシ設定の問題
- 27. Nginx異なるサーバーへのリバースプロキシ
- 28. 再定義Railsの方法
- 29. ハードシグモイドの定義方法
- 30. ネットワークインタフェースの定義方法
あなたのソリューションは実稼働環境にも適していると思いますか?どのようにARRを設定しましたか?ありがとう –