Haproxy
Haproxy 更改部分 url
我有一個重命名的應用程序,我希望 Haproxy 重定向到正確的路徑,同時保留請求參數
這就是我所擁有的:
acl old_name path_dir -i /old_name http-request set-path /new_name/%[query] if old_name
我希望它從
www.site.com/old_name/Default.aspx?Id=123
到
www.site.com/new_name/Default.aspx?Id=123 but this is not working.
使用 HAProxy 1.5:使用臨時標頭從請求中的現有路徑建構新路徑,然後直接執行重定向
# Clean the request and remove any existing header named X-Rewrite http-request del-header X-REWRITE # Copy the full request URL into X-Rewrite unchanged http-request add-header X-REWRITE %[url] if { path_beg /old_path } # Change the X-REWRITE header to contain out new path http-request replace-header X-REWRITE ^/old_path(/.*)?$ /new_path\1 if { hdr_cnt(X-REWRITE) gt 0 } # Perform the 301 redirect http-request redirect code 301 location http://%[hdr(host)]%[hdr(X-REWRITE)] if { hdr_cnt(X-REWRITE) gt 0 }
在 HAProxy 1.6 中,使用 regsub 過濾器
http-request redirect code 301 location http://%[hdr(host)]%[url,regsub(^/old_path,/new_path,)] if { path_beg /old_path }
有關regsub 關鍵字的更多資訊,請參閱HAProxy 文件。