我认为这个主题涵盖了它。我需要在同一域内构建一个包含许多 301 重定向的列表,即将/some_old_place 重定向到/some_new_place。我们有很多内容会根据 uri 被淘汰或替换。来自 haproxy states maps 当前主页的引用可用于“构建大量重定向表”,但对于我的生活我可以弄清楚。我使用的是 1.5 版,这是我目前正在处理的配置行。
redirect location %[map(/opt/local/etc/haproxy/redirect.map), hdr(url)] code 301
鉴于上面的配置行,我得到了
[ALERT] 099/205518 (27981) : parsing [/opt/local/etc/haproxy/haproxy.cfg:83] : error detected in frontend 'LoadBalancer' while parsing redirect rule : expects 'code', 'prefix', 'location', 'scheme', 'set-cookie', 'clear-cookie', 'drop-query' or 'append-slash' (was 'hdr(url)]').
我已经尝试了很多变体,但没有发现任何成功。如果有人知道如何做到这一点,请告诉我?
最佳答案
这是我想出的解决方案。感谢 JStarcher 提供有关空格的提示。
http-request redirect location %[capture.req.uri,map(/etc/haproxy/redirect.map)] code 301 if { capture.req.uri,map(/etc/haproxy/redirect.map) -m found }
在引用的文件 redirect.map 中,我在左侧有一个源 uri,在右侧有一个由空格分隔的目标。
/some_old_page.html/some_new_page.html
此时文件中有超过 2k 行,我没有看到明显的减速。
关于redirect - 如何使用haproxy中的map功能构建海量重定向表 1.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001799/