2

我目前在 AppFog 有两个应用程序,它们是。

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 时,我在 localhost:8232 收到 AppFog 404 Not Found。

我错过了什么,这甚至可能吗?

编辑:

新配置有效,但现在我有一个端口 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/ 时,它将 localhost 作为 AppFog 没有作为注册应用程序名称的域名发送。

有一个很好的方法来解决这个问题

1) 将您的应用程序映射到第二个域名,例如:

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 回答