2017-02-19 3 views
1

これは私の設定です。異なるマシン上で実行されているIISおよび/またはApacheへのリクエストをルーティングする方法1つのパブリックIPポート80

ドメインを取得しました。私のローカルネットワーク内

は、私は、Active Directoryのボックスが提供するDNSを持って、

ポート80、ホスト名iis.domain.com、 上で実行されているIIS Webサーバーと、これはサイトを持っているiis1.domain.com、 iis2.domain.com

apache1.domain.comとapache2.domain.comというサイトでホスト名apache.domain.com、 を実行しているApache Webサーバー。

ローカルネットワーク内では、これらのサイトにすべてアクセスできます。 iis1、iis2、apache1、apache2の外部DNSエントリもあります。

パブリックIPアドレスは1つしかありません。ポートをインターネットに転送する別のボックスを設定したいと考えています(ポートフォワードポート80と443)。 私はそのボックスに何をインストールするか、それを設定する方法を知りたいと思います。

私はnginx、haproxy、IIS ARRを見てきましたが、これらのうちどれがセットアップが簡単で、最小限のオーバーヘッドがあるかを知りたいと思います。

私の考えでは、私は何かを指定したいと思います。サイトiis1.domain.comのリクエストであれば、それをIISウェブサーバーに持って行き、apache1.domain.com Apache Webサーバーに移動します。 私はLinuxのソリューションを使いたいと思っていますが、どのようにセットアップするのかよくわかりません。

ありがとうございます。

P.S. 私は可能な解決策を見たhere

この作品は気に入っていますか?

server { 

     listen 80 default_server; 

     server_name iis1.domain.com; 

     location/{ 
         proxy_pass http://iis1.domain.com/; 
     } 

} 

server { 

     listen 80 default_server; 

     server_name apache1.domain.com; 

     location/{ 
         proxy_pass http://apache1.domain.com/; 
     } 

} 

答えて

0

私は(私の意見では、最も簡単な)haproxyとなるだろう
はちょうど内部DNS対あなたの外部には充分に注意してください。 あなたの質問であなたが持っている例は、DNSに転送されます....プロキシ(外部)を指しています....これはDNSを指しています...私はあなたが私の意味を持つと思います。

global 
    # default globals 
defaults 
    # default globals 
frontend http-in 
    bind      YOUR.IP.GOES.HERE:80 
    bind      YOUR.IP.GOES.HERE:443 ssl crt PATH/TO/CERT-FILE.PEM no-sslv3 
    mode      http 
    option      httplog 
    option      httpclose 
    option      forwardfor 

    acl iis1     hdr(Host) -i iis1.domain.com 
    acl iis2     hdr(Host) -i iis2.domain.com 
    acl apache1     hdr(Host) -i apache1.domain.com 
    acl apache2     hdr(Host) -i apache2.domain.com 

    use_backend iis if iis1 
    use_backend iis if iis2 
    use_backend apache if apache1 
    use_backend apache if apache2  

backend iis 
     server IIS  xxx.xxx.xxx.xxx:80 check 

backend apache 
     server APACHE xxx.xxx.xxx.yyy:80 check 

HAProxyので、内部と外部の両方のDNSは、プロキシを指すとHAProxyの設定は次のようになり、その意図したバックエンド

にルーティング罰金になるだろう、あなたのバックエンドのIPアドレスを指します

+0

はよう、/ etc/nginxの/サイト-有効に/私はこの情報を持つ1つの設定ファイルを作成しました。 –

+0

ありがとうございます。私はあなたのソリューションが好きです、それは私のものよりもエレガントです。私はすでにその間に私のものを実装しましたが、私はそれが動作すると確信しています。私はちょうどhaproxyとnginxの比較ビデオを見た。 [link](https://www.youtube.com/watch?v=yQvcHy_tPjI)極端な状況では、nginxのパフォーマンスが若干良くなり、リクエストを処理できないことが示されています。 –

0

私は実際にこれを動作させるために、nginxでLinuxボックスをインストールしました。このボックスからのポート80はインターネットに転送されます。

/etc/nginxに、他の設定ファイルを探す行を追加しました - > include /etc/nginx/sites-enabled/*.conf; 。私は実際にこれはnginxのでLinuxボックスをインストールすることにより、仕事を得ることに成功し

server { 
    listen 80; 
    server_name apache1.domain.com; 
    location /{ 
     proxy_pass http://apache1.domain.com; 
    } 
} 

server { 
    listen 80; 
    server_name apache2.domain.com; 
    location /{ 
     proxy_pass http://apache2.domain.com; 
    } 
} 

server { 
     listen 80; 
     server_name iis1.domain.com; 
     location /{ 
       proxy_pass http://iis1.domain.com; 
     } 
} 

server { 
     listen 80; 
     server_name iis2.domain.com; 
     location /{ 
       proxy_pass http://iis2.domain.com; 
     } 
} 
関連する問題