タグ付けされた質問 「haproxy」

HAProxyは、TCPおよびHTTPベースのアプリケーションに高可用性、ロードバランシング、およびプロキシを提供するオープンソースの非常に高速で信頼性の高いソリューションです。これは、永続性またはLayer7処理を必要としながら、非常に高い負荷の下でクロールするWebサイトに特に適しています。

2
URLサブストリングに基づいてhaproxyルートリクエストを作成するにはどうすればよいですか?
ロードバランサーは2つのバックエンドでセットアップされます。 要求URIは次のようになります。 http://example.com/answers/submit http://example.com/tag-02/answers/submit リクエストURIの形式に応じて、2つのバックエンドのいずれか一方にリクエストが送信されるようにhaproxyを構成するにはどうすればよいですか?リクエスト間の唯一の違い/tag-02/はリクエストURIです。 私はhaproxyが初めてなので、このためのhaproxy構成ファイルを少し説明していただければ幸いです。
13 haproxy 

6
HAProxyのWindows代替
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 すでに投稿されているこれと同様の質問があるようには見えないので、先に進みます。 私は、2〜4台のサーバーがバックエンドWebサービスへの着信要求を処理することで利益を得られるプロジェクトに取り組んでいます。このサービスはSSLを必要としませんが、場合によっては長時間実行されるプロセス(最大120秒)をサポートする必要があります。 このプロジェクトには現在、ハードウェア負荷分散ソリューションを購入するための資金がありません。 以前にHAProxyをこのソリューションとして使用しましたが、非常にシンプルでわかりやすいことがわかりました。同様の構成オプションを提供し、軽量サービスとして実行されるWindows(サーバー2003または2008)用の類似製品はありますか? 制御できない理由により、Linuxマシン(物理または仮想)をセットアップできないため、Windowsマシンに展開できる動作を探しています。 私はこのカテゴリーに分類されるPerlbalのみを見つけることができます。したがって、これを無制限に開いたままにしないために、唯一の答えを評価します。

2
haproxyのIPv4およびIPv6のすべてのインターフェイスにバインドする
私には、configureにしたいhaproxyに結合するtcpだけでなく、tcp6すべてのインターフェイス上のソケット(すなわち、0.0.0.0:80と:::80)。 次の設定でこの目標を達成できました。 listen web bind :80 v4v6 bind :::80 v6only これより短い方法はありますか? 私はそれが異なる振る舞いをすると予想しますが、v4v6キーワードはhaproxyをv4ソケットのみにバインドします。
13 haproxy 

2
HAProxyにバックエンドサーバーのDNSをルックアップさせる
私はhaproxy 1.5.8を持っています。これは、(パスに基づいて)いくつかの要求を、制御できないサードパーティにプロキシします。 バックエンドサーバーのIPは起動時に一度解決されるため、IPが変更されると壊れます。 そのための回避策があれば?nginxでは、内部変数を宣言してX秒間キャッシュすることができます。HAProxyの同様のソリューションは見つかりませんでした。

2
haproxyタイミング接続図
Haproxyのタイミングについてもっと理解しようとしています。以下は、Haproxyマニュアルのタイミングの抜粋です。 Tq:クライアント要求を取得するための合計時間(HTTPモードのみ)... Tw:接続スロットを待機しているキューで費やされた合計時間... Tc:サーバーへのTCP接続を確立するための合計時間.... Tr:サーバーの応答時間(HTTPモードのみ)... Tt:プロキシが受け入れた時点から両端が閉じられた時点までの合計セッション継続時間... ソース: http : //cbonte.github.io/haproxy-dconv/configuration-1.5.html#8.4 私はいくつかのタイミングを図にしようとしましたが、私の図はおそらく間違っていて間違いなく不完全です(FINなどはありません): 質問:すべてのTCP / IP通信だけでなく、すべてのタイミング測定(Tq、Tw、Tc、Tr、Tt)を含む完全なタイミング図はどのようになりますか?
13 haproxy 

4
syslogへのhaproxyロギング
http://haproxy.debian.net/ppa:vbernat/haproxy-1.5に従って、ubuntu 14.04のapt-get経由でhaproxy 1.5をインストールしました。 問題は、/var/log/syslog代わりにログインすることです/var/log/haproxy.log セットアップは基本的にデフォルトです: /etc/haproxy/haproxy.cfg global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon # Default SSL material locations ca-base /etc/ssl/certs crt-base /etc/ssl/private # Default ciphers to use on SSL-enabled listening sockets. # …

2
サーバーがダウンしている場合のみHAProxyスイッチ
SAとSBの2つのサーバーがあるとします。次のように動作するようにHAProxyを構成することは可能ですか? すべての接続がSAになります-> SAがダウンします-> HAProxyはSBにすべての接続を切り替えます-> SBがダウンしなくなるまで、SAに接続します。 。 簡単に言うと、現在のサーバーがダウンした場合にのみHAProxyを切り替えたいと思います。たぶん、HAProxy以外のsthを使用する必要がありますか?

1
haproxy:高負荷下で既存のセッションを保持し、新しい到着に「503」を提供
タイトルに書かれていることをしようとしています。既存のセッションを高負荷で保持し、新しく到着した訪問者に503メッセージを提供します。 問題:動作しますが、セッションは約90秒以上持続しません。 現在の結果では、私が見逃しているタイムアウト設定があるかどうか疑問に思っています。 目的 私はhaproxyを取得しようとしています: フロントエンドのセッションの総数が特定のしきい値を下回ったときに、新しいセッションのリクエストをバックエンド-001に送信します。 フロントエンドのセッションの合計数がそのしきい値を超えている場合、新しいセッションに503エラーを提供します セッション数がしきい値を超えた場合でも、既存のセッションの要求を許可します このように、マルチステップフォームに入力しているビジターは503エラーに驚かないで、新しいビジターに「今忙しいので後で戻って来てください」と言うことができます。 セットアップ セットアップは次のとおりです。 {visitors} ↓ [haproxy] ↓ [rails app on unicorn served by nginx] (right now just one backend: 'backend-001') 現在のアプローチ 上記を達成するために、以下の構成を使用しています。 これは、テストを簡単にするために、非常に低い制限(フロントエンドで10接続(fe_conn gt 10))でテスト用です。 サーバーに負荷をかけるために、次のようにhttperfを使用しています。 httperf --hog --server staging.machine.tld --uri / do_some_things --wsess = 500,10,30 --rate 2 global daemon maxconn 10000 …
12 proxy  haproxy 

6
帯域幅を均等に分散するために、複数の静的ファイルサーバー間で負荷を分散する最良の方法は?
まず、私の状況を説明します。私はかなり人気のあるWebサイトをサイドプロジェクトとして運営しているため、大量のお金を投資することはできません。現在、Apacheに通常のリクエストを送信し、Lighttpdにすべての静的ファイルリクエストを送信するHAProxyを備えたサーバーが1台しかありません。すべてのphpおよびpostリクエストはApacheによって処理されるため、これは非常にうまく機能しますが、すべての画像はより高速なLighttpdに送信されます(サイトはほとんど画像なので、これは非常に重要です)。短いURLも非常に重要であるため、画像を提供するためにサブドメインを設定する必要がないのは良いことです。したがって、HAProxyを使用する私の理由です。 私が使用している非常に安価な未測定の帯域幅を提供するホスティングプロバイダーを見つけました.100mbsのネットワークカードが処理できる帯域幅を押し出すと問題が発生します。したがって、2台目のサーバーが必要です。 私は私のオプションに多くの考えを入れましたので、それぞれについて説明します。どれが私にとって最良の選択肢であるかについての洞察を提供できれば幸いです。あるいは、まだ考えていない別の選択肢があるかもしれません。 要件: 帯域幅の分配も必須です。私は非常に強力なサーバーを持っているので、スケールアップはオプションではありません。帯域幅を増やすためにスケールアウトする必要があります。 短いURL。画像を提供するためにimg.example.comのようなサブドメインを設定することは本当にありません。example.com/image.jpgは現在の状態であり、どのようにそれを維持したいのかです。しかし、他に方法がなければ、私は理解しています。 要求を処理するclostestサーバーは本当に便利ですが、必須ではありません。心に留めておくべきこと。 負荷分散するHAProxy: とにかくHAProxyを既に使用しているので、それは本当に簡単です。ただし、帯域幅を分配するときに問題が発生すると思います。私はこれで間違っているかもしれませんが、HAProxyはリクエストをサーバーに送信し、そこでサーバーはそれを処理し、HAProxyを介してクライアントに送り返しますか?したがって、すべてのトラフィックはロードバランサーを経由して戻り、すべてのサーバーを合わせた帯域幅を使用します。 DNSラウンドロビン: これが私の最良の選択肢かもしれません。Webサイトを複数のサーバーに複製し、私が今していることを行うだけです。マイナス面は、1つのサーバーがダウンしても、クライアントがサーバーに送信されることです。また、複数のサーバーにサイトを複製する必要があります。私は、静的ファイルを除くすべてを処理する1つのメインサーバーがあり、その後にいくつかの静的ファイルサーバーがあることを望んでいました。また、これは一種の「貧乏人の負荷分散」であり、もう少し洗練されたものがあればいいと読みました。 ダイレクトサーバーリターン: それは本当に複雑に思えますが、良い選択肢かもしれません。特定のURLを特定のサーバーに送信することはできますか?現在HAProxyと同様に、正しいファイル拡張子で終わるすべてのURLはLighttpdに送信され、他の拡張子はApacheに送信されます。だから私は似たようなものが必要だろう。同様に、すべてのphp要求は、バランシングソフトウェアを実行している同じサーバーによって処理されますが、すべてのjpg要求は複数のサーバーに送信されます。 理想的には、HAProxyがDirect Server Returnをサポートしていれば、私の問題は解決するでしょう。また、CDNを使用したくありません。それらは本当に高価であり、結局のところ、これは単なる副プロジェクトです。 私の問題を理解していますか?正しく説明しなかった場合や、さらに情報が必要な場合はお知らせください。

2
HAProxyでPOST本体全体を記録しますか?
javascriptクライアントがアプリケーションサーバーとやり取りする方法に関するいくつかの問題を追跡しようとしており、前後に渡されるhttpペイロード全体(ヘッダー、ボディ、およびすべて)を確認したいと考えています。 アプリケーションサーバーの前に既にhaproxyサーバーが存在しているので、関連するログを提供するためにhaproxyを使用できることを望んでいました。実稼働環境でこれをオンにするのは明らかに悪いことですが、このデバッグを行っている間に分離できる環境全体のクローンがあります。 特定のバックエンドサーバーに送信されるPOSTリクエストのhttpペイロード全体をhaproxyに記録させる方法はありますか?
12 haproxy 

2
HAProxy、異なるホスト名を持つ複数のサーバーのヘルスチェック
ホスト名が異なる複数の実行中のサーバー間で負荷を分散する必要があります。それぞれに同じ仮想ホストをセットアップできません。 複数のサーバーでリッスン構成を1つだけにして、ヘルスチェックでhttp-send-name-header Hostディレクティブを適用することは可能ですか?HAProxy 1.5を使用しています。 ご覧のように、この動作するhaproxy.cfgを思いついたので、ヘルスチェックはを無視するため、ヘルスチェックごとに異なるホスト名を設定する必要がありましたhttp-send-name-header Host。変数または他のメソッドを使用して、物事をより簡潔に保つことを望んでいました。 global log 127.0.0.1 local0 notice maxconn 2000 user haproxy group haproxy defaults log global mode http option httplog option dontlognull retries 3 option redispatch timeout connect 5000 timeout client 10000 timeout server 10000 stats enable stats uri /haproxy?stats stats refresh 5s balance roundrobin option …
11 haproxy 

1
最初に要求されたリソースの絶対アドレスを含むカスタムヘッダーを追加する方法
次のセットアップがあります。 |-------|--- backend1:8080 example.com:80---|HAProxy|--- backend2:8080 |-------|--- backend3:8080 元のURLを含むカスタムヘッダーを追加するようにHAProxyを構成したいと思います。たとえば、ユーザーがリクエストする場合http://example.com/foo?bar=baz、つまり: GET /foo?bar=baz HTTP/1.1 Host: example.com:80 HAProxyがこのリクエストをバックエンドに変換するようにしたいと思います。 GET /foo?bar=baz HTTP/1.1 Host: backend1:8080 x-custom-header: http://example.com/foo?bar=baz このreqaddオプションでは、静的な値を持つヘッダーのみを追加できます。を使用してリクエストからパス部分を取得できましたreqrep: reqrep ^([^\ ]*)\ ([^\ ]*)\ (HTTP\/1\.[10]) \0\r\nx-custom-header:\ \2 ただし、残念ながら、これは元のURLのパス部分のみをキャプチャし、次のヘッダーを生成します。 x-custom-header: /foo?bar=baz したがって、私の質問は、HAProxy 1.4でHost HTTPリクエストのヘッダーと最初の行の両方をカスタムヘッダーに結合できるかどうかです。
11 haproxy 

3
NginxはHAProxyの前にあるべきですか、それとも反対ですか?
私は、ウェブサイトのインフラストラクチャーアーキテクチャー設計の経験がほとんどありません。私はそれが特定の状況であるかもしれないことを知っています。Webサイトは次のことになっています。 1)一部のページ(ログインページなど)に対してHTTPSサポートが必要で、他のページは単にHTTPページです。 2)複数のWebサーバーが必要であるため、負荷分散が必要です。 3)パフォーマンスを向上させるには、HTTPキャッシングと圧縮が必要です。 4)一部のリクエスト(画像のアップロードなど)は、専用のバックエンドサーバーにルーティングする必要があります。そのため、URLベースのバランスが必要です。 NginXとHAProxyは、どちらもオープンソースのリバースプロキシやロードバランサーとして優れていることを知っています。HAProxyはSSLをサポートしていないため、Nginxの負荷分散はHAProxyほど優れていません。私は両方を取ります。 Nginx(リバースプロキシとして)をHAProxyの前に(ロードバランサーとして)または反対に配置する必要がありますか? ありがとう

1
haproxyを使用してSSLがチェックされる前にhttps接続をリダイレクトすることは可能ですか?
2つのドメインがmyexample.comありmy-example.comます。いずれかのドメインのすべてのトラフィックがhttps://www.my-example.comに移動し、SSL証明書が必要です。ドメインmyexample.comのSSL証明書を持っていません。 私が持っているhttp://myexample.com、http://www.myexample.com、http://my-example.comとhttp://www.my-example.comへのすべてのリダイレクトHTTPSを:// WWW。 my-example.comは何の問題もなく、しかし、私はのためのリダイレクト設定したときhttps://myexample.comまたはhttps://www.myexample.comリダイレクトする前に自分のSSL証明書のための、それのチェックをし、私はいつも、証明書を取得しますので、エラー。 リダイレクト先の非SSLドメインをSSLチェックせずにリダイレクトする方法はありますか? 私の設定ファイルの関連部分: frontend www-https bind xxx.xxx.xxx.xxx:443 ssl crt /etc/ssl/private/www.my-example.com.pem reqadd X-Forwarded-Proto:\ https redirect prefix https://www.my-example.com code 301 if { hdr(host) -i myexample.com } redirect prefix https://www.my-example.com code 301 if { hdr(host) -i www.myexample.com } default_backend www-backend
11 ssl  haproxy 

4
Haproxyはリクエストをログに記録しませんか?
そこで、ロギングがrsyslogを通過し、今のところすべてが1つのファイルにダンプされるように、Haproxyを構成しました。 起動時にこれらの「開始」メッセージが表示されるため、これは明確にログを記録しますが、HTTP要求はログに記録しません。私の構成の何が問題になっていますか? haproxy.cfg: global log /dev/log local0 debug chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin stats timeout 30s user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.