使用haproxy创建应用程序路径

时间:2015-07-09 16:08:53

标签: haproxy

我有一台服务器在不同的端口上运行多个Web应用程序,没有任何根应用程序路径。我目前可以通过http://myServer:8001http://myServer:8002等方式访问它们,我希望通过HaProxy以http://myServer/app1http://myServer/app2等方式访问它们

我发现使用reqrep的多个链接,但我无法使其工作。这是我放弃之前的最后一次尝试:

frontend http-in
  option forwardfor
  bind *:80
  acl is-app1 path_beg /app1
  use_backend app1 if is-app1
  acl is-app2 path_beg /app2
  use_backend app2 if is-app2

backend app1
  reqrep ^Location:\ /app1/?(.*)     Location:\ /\1
  rsprep ^Location:\ (.*)     Location:\ /app1/\1
  server localhost 127.0.0.1:8001

backend app2
  reqrep ^Location:\ /app2/?(.*)     Location:\ /\1
  rsprep ^Location:\ (.*)     Location:\ /app2/\1
  server localhost 127.0.0.1:8002

从我看到的例子中,我预计这一行足够(不需要rsprep),但我无法使其工作。

reqrep ^([^\ :]*)\ /app1/?(.*)     \1\ /\2

1 个答案:

答案 0 :(得分:2)

尝试一下 - 您可能需要稍微修改一下以满足您的要求。

frontend    http-in
    bind        *:80
    mode        http
    option      httplog
    option      dontlognull
    option      forwardfor

    # if "/app1"
    use_backend app1 if { path_beg /app1/ }

    # if "/app2"
    use_backend app2 if { path_beg /app2/ }

backend     app1
    reqrep      ^([^\ :]*)\ /app1/(.*) \1\ /\2
    option      forwardfor
    server      localhost 127.0.0.1:8001

backend     app2
    reqrep      ^([^\ :]*)\ /app2/(.*) \1\ /\2
    option      forwardfor
    server      localhost 127.0.0.1:8002