2

現在、AppFog には 2 つのアプリがあります。

http://sru-forums-prod.aws.af.cm/およびhttp://sru-home-prod.aws.af.cm/

コンピューターでローカルに実行している haProxy があります。これが現在の構成ファイルです。

グローバル デバッグ

defaults
  mode http
  timeout connect 500ms
  timeout client 50000ms
  timeout server 50000ms

backend legacy
  server forums sru-forums-prod.aws.af.cm:80

frontend app *:8232
  default_backend legacy

最終的な目標は、localhost:8232 がトラフィックを sru-home-prod に転送し、localhost:8232/forums/* がトラフィックを sru-forums-prod に転送することです。ただし、単純なプロキシを起動して実行することさえできません。

この構成ファイルから HAProxy を実行すると、AppFog 404 Not Found at localhost:8232 が表示されます。

私は何が欠けていますか、これは可能ですか?

編集:

新しい構成は機能しますが、応答でポート 60032 が返されます。

global
  debug

defaults
  mode http
  timeout connect 500ms
  timeout client 50000ms
  timeout server 50000ms

backend legacy
  option forwardfor
  option httpclose
  reqirep ^Host: Host:\ sru-forums-prod.aws.af.cm
  server forums sru-forums-prod.aws.af.cm:80

frontend app *:8000
  default_backend legacy
4

1 に答える 1

2

AppFog 404 Not Found が表示される理由は、AppFog でホストされているアプリケーションがドメイン名でルーティングされているためです。AppFog がサービスを提供するアプリを認識するために、HTTP 要求にドメイン名が含まれている必要があります。localhost:8232/forums/ に移動すると、AppFog が登録アプリ名として持っていないドメイン名として localhost が送信されます。

この問題を回避する良い方法があります

1) アプリケーションを 2 番目のドメイン名にマップします。次に例を示します。

af map <appname> sru-forums-prod-proxy.aws.af.cm

2) /etc/hosts ファイルを編集して、次の行を追加します。

127.0.0.1   sru-forums-prod-proxy.aws.af.cm

3) http://sru-forums-prod-proxy.aws.af.cm:8232/forums/に移動します。これはローカル マシンにマップされますが、haproxy を正常に通過し、正しいホスト名がマップされます。 AppFog でホストされているアプリ。

これは、同様の方法論を使用してこれまでにどのように機能したかを示す実際の haproxy.conf ファイルです。

defaults
  mode http
  timeout connect 500ms
  timeout client 50000ms
  timeout server 50000ms

backend appfog
  option httpchk GET /readme.html HTTP/1.1\r\nHost:\ aroundtheworld.appfog.com
  option forwardfor
  option httpclose
  reqirep ^Host: Host:\ aroundtheworld.appfog.com
  server pingdom-aws afpingdom.aws.af.cm:80 check
  server pingdom-rs afpingdom-rs.rs.af.cm:80 check
  server pingdom-hp afpingdom-hp.hp.af.cm:80 check
  server pingdom-eu afpingdom-eu.eu01.aws.af.cm:80 check
  server pingdom-ap afpingdom-ap.ap01.aws.af.cm:80 check

frontend app *:8000
  default_backend appfog

listen stats 0.0.0.0:8080
    mode http
    stats enable
    stats uri /haproxy
于 2012-09-25T19:39:46.687 に答える