web-dev-qa-db-ja.com

Haproxyはwwwをwww以外にリダイレクトします

私は現在、Haproxyを使用していくつかのexpress.jsノードのバランスを取っています。 express.jsを使用してリダイレクトできることは知っていますが、Haproxyを使用してリダイレクトしたいと思っていました。

Www.mysite.comからmysite.comへの永続的なリダイレクトをどのように行うことができるのでしょうか。

17
LDK
redirect prefix http://example.com code 301 if { hdr(Host) -i www.example.com }

詳細については、 リダイレクトプレフィックス ルールのドキュメントを参照してください。

新しいバージョンのHAProxy(1.6以上)を使用している場合は、明示的に名前を付けただけでなく、任意のホストをリダイレクトできる、より一般的な構文を使用できます。

http-request redirect prefix http://%[hdr(Host),regsub(^www\.,,i)] code 301 if { hdr_beg(Host) -i www. }

ここでは、 regsub フィルタを使用して、www.プレフィックスなしで正しいホスト名を動的に生成しています。

リダイレクトを逆に実行する場合、つまりwwwがまだない場合は追加する場合、ルールはより単純になります。

http-request redirect prefix http://www.%[hdr(Host)] code 301 unless { hdr_beg(Host) -i www. }
39
Holger Just