20

私は現在、複数の Express.js ノードのバランスを取るために Haproxy を使用しています。Express.js を使用してリダイレクトできることはわかっていますが、Haproxy でリダイレクトしたいと考えていました。

www.mysite.com から mysite.com への永続的なリダイレクトを行うにはどうすればよいでしょうか?

4

1 に答える 1

42
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. }
于 2012-05-01T19:07:16.813 に答える