Ubuntu

使用 haproxy 重定向重寫的 url

  • November 17, 2016

在 Ubuntu 14.04 上使用 haproxy 版本 1.4.24

我想使用 haproxy 重寫和重定向不再有效的 url 到它們的新等價物。我已經在使用 haproxy 作為反向代理和負載均衡器。我的重寫工作正常,但是當我嘗試重定向時,我要麼沒有重定向,要麼處於重定向循環中。我在幾個地方讀到,一種技術是在前端使用前綴重寫和重定向 url,但我沒有任何運氣。任何幫助,將不勝感激。謝謝。

global
   log 127.0.0.1 local0
   log 127.0.0.1 local1 notice
   maxconn 4096
   user haproxy
   group haproxy
   spread-checks 0

defaults
   log global
   mode http
   option httplog
   option dontlognull
   retries 3
   timeout queue 20000
   timeout client 50000
   timeout connect 5000
   timeout server 50000

frontend haproxy-0-80
   bind 0.0.0.0:80
   default_backend haproxy_service
   acl old_url path_beg -i /post
   # The below doesn't appear to have any effect
   reqrep ^([^\ :]*)\ /post/\d+/(.+)/?     \1\ /\2
   redirect prefix http://10.0.3.10 code 301 if old_url

backend haproxy_service
   balance leastconn
   cookie SRVNAME insert
   # The below properly handles the rewrite
   reqrep ^([^\ :]*)\ /post/\d+/(.+)/?     \1\ /\2
   server ghost-0-2368 10.0.3.220:2368 maxconn 100 cookie S0 check

事實證明,我非常接近工作配置。

將重定向行更改為 readredirect prefix / code 301 if old_url使其按預期工作。

我寫了一篇部落格文章,更詳細地概述了這個問題:https ://fromanegg.com/post/2014/12/05/how-to-rewrite-and-redirect-with-haproxy/

引用自:https://serverfault.com/questions/652428