HTTPトラフィックを転送するサーバーソリューション

HTTPトラフィックを転送するサーバーソリューション

サーバーからGET / POST HTTP要求をリダイレクトするソリューションを探しています。

最も簡単なのは、ポート変換とホスト名のリダイレクト(HTTP 3xxリダイレクト)です。 DMZ上のサーバーがポート7070でトラフィックを受信したとき(http://mydmz.server.com:7070)、これはトラフィックを公開Webサーバー(http://liveupdate.symantecliveupdate.comデフォルトポートは80)

ただし、要求ヘッダーを動的に変更する必要があります。

  • /clu - 製品URIから削除する必要があります
  • ホスト:mydmz.server.comと交換する必要がありますホスト:liveupdate.symantecliveupdate.com

ポート7070でリッスンし、次のことを行うために私のサーバーでどのツールとソリューションを使用できますか?ロードバランサー、HTTPプロキシ?

ここに画像の説明を入力してください。 ここに画像の説明を入力してください。

ベストアンサー1

私はこれを達成するためにHAProxyを使用できると思います。

  • ポート 7070/tcp でリッスンするには httpd モードに設定します。
  • haproxy 代替値を使用してホストヘッダーを変更します。あなたの場合は、次のように見えることがあります。

    http-request replace-value Host mydmz.server.com:(.*) liveupdate.symantecliveupdate.com:\1
    
  • haproxy URL 書き換えを使用して URI を削除します。あなたの場合は、次のようになります。

    reqrep ^([^\ ]*\ /)clu-prod[/]?(.*)     \1\2
    

これらの設定では、HAProxyの構成は次のようになります。これはCentOS 7のHAProxyのデフォルト設定をすばやく変更したものです。いいえ徹底したテストを受けました):

    global
   log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend  main *:7070
    default_backend             app

backend app
    http-request replace-value Host mydmz.server.com:(.*) liveupdate.symantecliveupdate.com:\2
    reqrep ^(.*)/clu-prod(.*) \1/\2
    balance     roundrobin
    server  app1 liveupdate.symantecliveupdate.com:80 check

利用可能な他のオプションはイカプロキシです。http://www.squid-cache.org/

おすすめ記事