Haproxy将www重定向到非www

LDK*_*LDK 17 haproxy

我目前正在使用Haproxy来平衡几个express.js节点.我知道可以使用express.js重定向,但我希望Haproxy可以这样做.

我想知道如何从www.mysite.com永久重定向到mysite.com?

Hol*_*ust 37

redirect prefix http://example.com code 301 if { hdr(host) -i www.example.com }
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅重定向前缀规则的文档.

如果您使用的是较新版本的HAProxy,即至少为1.6,则可以使用更通用的语法,该语法允许重定向任何主机,而不仅仅是显式命名

http-request redirect prefix http://%[hdr(host),regsub(^www\.,,i)] code 301 if { hdr_beg(host) -i www. }
Run Code Online (Sandbox Code Playgroud)

在这里,我们使用regsub过滤器动态生成没有www.前缀的正确主机名.

如果你想以相反的方式执行重定向,即添加a,www如果没有,则规则变得更简单:

http-request redirect prefix http://www.%[hdr(host)] code 301 unless { hdr_beg(host) -i www. }
Run Code Online (Sandbox Code Playgroud)