How to redirect url using haproxy

心不动则不痛 提交于 2019-12-24 18:15:56

问题


I want to redirect https://myserver/myapplication/ to https://myserver.domain.com/myapplication/ using haproxy.

This is my haproxy configuration

frontend LB_http
   bind 10.123.122.112:80
   reqadd X-Forwarded-Proto:\ http
   default_backend LB


frontend LB_https
   bind 10.123.122.112:443 ssl crt /usr/local/apache2/conf/server.pem
   reqadd X-Forwarded-Proto:\ https
   default_backend LB

backend LB
   redirect scheme https if !{ ssl_fc }
   mode http
   stats enable
   stats hide-version
   stats uri /stats
   stats realm Haproxy\ Statistics
   stats auth haproxy:redhat            # Credentials for HAProxy Statistic report page.
   balance roundrobin                   # Load balancing will work in round-robin process.
   option httpchk
   option httpclose
   option forwardfor

   server myserver.domain.com myserver.domain.com:80          # backend server.

I have edited the config file by adding the below two lines

acl no_domain hdr(host) -i myserver
http-request redirect code 301 prefix %[hdr(host)].domain.com%[path] if no_domain

But now, when I try

myserver/myapplication/

the url is redirecting multiple times I guess. It is redirecting me to very long url like this

https://myserver/myapplication/myserver.domain.com/myapplication/myserver.domain.com/myapplication/myserver.domain.com/myapplication/myserver.domain.com/myapplication/myserver.domain.com/myapplication/myserver.domain.com/myapplication/

What am I missing?


回答1:


I have modified the code as below and it started working as expected

frontend LB_http
   bind 10.123.122.112:80
   reqadd X-Forwarded-Proto:\ http
   default_backend LB


frontend LB_https
   bind 10.123.122.112:443 ssl crt /usr/local/apache2/conf/server.pem
   reqadd X-Forwarded-Proto:\ https
   default_backend LB

backend LB
   acl no_domain hdr(host) -i myserver
   http-request redirect code 301 prefix https:\/\/myserver.domain.com if no_domain
   redirect scheme https if !{ ssl_fc }
   mode http
   stats enable
   stats hide-version
   stats uri /stats
   stats realm Haproxy\ Statistics
   stats auth haproxy:redhat            # Credentials for HAProxy Statistic report page.
   balance roundrobin                   # Load balancing will work in round-robin process.
   option httpchk
   option httpclose
   option forwardfor

   server myserver.domain.com myserver.domain.com:80          # backend server.

Now when I give

myserver/myapplication

it redirects to

https://myserver.domain.com/myapplication



来源:https://stackoverflow.com/questions/48583664/how-to-redirect-url-using-haproxy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!