2017-10-16 8 views
0

私はNginxとDockerだけのVMを持っています。私は自分のドメインを暗号化するための証明書を手に入れました。ドッカーのコンテナの中に私はGitLabがインストールされています。今私は私のNginxプロキシを通してGitLabに到達しようとしています。GitLab in Docker with Nginxプロキシ

SSHトラフィックをNginxのストリーム経由でDockerにリダイレクトしようとすると、「アドレスはすでに使用中です」というエラーが表示されるので、GitLabへのSSHアクセスが問題です。

Dockerでは "127.240.0.1:22:22"のようなアドレスがあり、Nginxではgitlab.xyzから127.240.0.1:22にリダイレクトしていますが、TCPポート22でproxy_passを使用しています。作業。

ご意見はありますか? ありがとうございました!

答えて

1

悲しいことに、これはうまくいきません。 HTTP(s)クライアントは、到達しようとしているアドレス(gitlab.xyz)を示すHostヘッダーを送信します。

raw TCPの場合は、ホストヘッダーがないため、要求を受け取るコンテナを特定する方法がありません。

ホストが既にポート22/tcpを使用しているため、「アドレスはすでに使用中」になっています。

私たちは同じ問題を抱え、DNS-Aliasがリダイレクトする2番目のIPをホストに提供しました。私たちはこのIPへのすべての接続がgitlabに行くはずであることを知っています。つまり、ポートを直接コンテナに開くだけでよいので、逆プロキシは必要ありません。 (-p new.gitlab.ip:22:22)

+0

SSLの取り扱いはどのように行いますか? gitlabドッカーの中に? –

+0

私は現在、システムへのアクセス権がないので、私はそれをどのように処理したのかよく分かりません。しかしafaikでは、SSHを除いて、リバースプロキシ経由でgitlabへの他のすべてのトラフィックを扱うことができます。ボリュームを介してコンテナに証明書を取得し、コンテナ内のnginxとの「通常の」SSL処理を行うこともできます(オムニバスインストールを使用していると仮定します)。 – samprog

+0

AWS EC2インスタンスへのアプローチを試みましたが、「bind:要求されたアドレスを割り当てることができません」というエラーが表示されます。構文は次のようになります: "ports: - '1.2.3.4:1337:1337'"と1.2.3.4は例えばAWSの弾性IPです –

関連する問題