複数の内部 FTP サーバーのリバース プロキシ

複数の内部 FTP サーバーのリバース プロキシ

次のように Apache mod_proxy を使用して http 用のリバース プロキシを設定しました。

  • クライアント>http://abc.domain1.com より>リバースプロキシサーバー>192.168.50.1 (内部サーバー)

  • クライアント>http://def.domain2.com/ より>リバースプロキシサーバー>192.168.50.2 (別の内部サーバー)

今度は FTP でも同じことを実現したいと思います。

  • クライアント>ftp:/abc.domain1.com/>リバースプロキシサーバー>ftp:/192.168.50.1 (内部 FTP サーバー)

  • クライアント>ftp:/def.domain2.com/>リバースプロキシサーバー>ftp:/192.168.50.2 (別の内部 FTP サーバー)

両方の内部 FTP サーバーは vsftpd を実行しています。Redhat/Centos の設定を教えてください。

理由: 利用できるパブリック IP は 1 つだけです。

答え1

デリゲートをリバース FTP プロキシとして使用できます。

http://www.delegate.org/delegate/Manual.htm?serv_FTP

user@server というユーザー名は、ユーザーとサーバーに分解され、異なるサーバーを照合するために使用されます。

答え2

探しているものを設定するには 2 つの問題があります。

  • http とは異なり、ftp 用のリバース プロキシは非常に珍しい種類であり、存在するもの (古い Suse proxysuite など) は、控えめに言っても、セットアップして操作するのがあまり楽しいものではありません。
  • http 1.1とは異なり、ftpには仮想ホスティングつまり、サーバーは通信先のホスト名を認識できません。

ここでは、比較的簡単に設定できる2つの代替ソリューションを紹介します。それぞれに利点と制限があります。

  1. 2つのバックエンドサーバーを異なるポートで提供します(例:ftp://abc.domain1.com/そして ftp://def.domain2.com:8021/セットアップは非常に簡単で、リバース プロキシは不要です。転送するポートをいくつか追加するだけです。欠点: ドメインの 1 つでポート番号を含む URL を使用する必要がありますが、これが問題になるかどうかはわかりません。
  2. クラッシュFTPは、ftp、sftp などのための商用でありながら手頃な価格のサーバーであり、さまざまな方法で複数のバックエンドをフロントエンドに簡単に設定できます。
    1. ディレクトリとして、次のような設定になりますftp://abc.domain1.com/abcそしてftp://abc.domain1.com/def
    2. ユーザープロファイルに基づいて特定のバックエンドを表示するので、ftp://abc.domain1.com/誰がログインするかによって見た目が全く異なります。

オプション 2 を選択したのは、日常の運用においてこれが最も柔軟で信頼性が高いことがわかったためです。追加のボーナスとして、バックエンドへのトラフィックに ftp 以外のプロトコル (例: sftp) を使用できるようになります。

完全に動作するデモ バージョンがあり、ダウンロードしてテストすることができます (記憶が正しければ、同時接続は 5 つに制限されています)。

唯一の潜在的な欠点は、Java プログラムであるため、フットプリント (ディスクとメモリの両方) が通常の FTP サーバーよりも 1 サイズ大きくなることです。

答え3

fvu が言ったように、http プロキシを使用して ftp をルーティングすることはできません。

最も簡単な方法は、sftp を使用することです。ただし、多くの機能を無料で、しかも適正な価格で提供するオールインワンのリモート接続ソフトウェアである MobaXterm を使用してこれを行うこともできます。

最後の方法: 1 つのフォルダー/サーバーを作成し、フロントエンドのみを FTP として使用するように rsync を設定します。

関連情報