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

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

3
HAProxyが503 HTTPコードを送信するときにカスタム503エラードキュメントを使用するにはどうすればよいですか?
バックサーバー(バックエンド)がHTTP 503コードを送信するときにhaproxyが独自の503ドキュメントページを使用するようにしたいと思います。出来ますか? 「モニター障害」状態のようなものを見たことがありますが、それをフロントエンドに追加する方法がわかりません。

6
SSLでHAproxyを使用してX-Forwarded-Forヘッダーを取得し、SSLが使用されていることをPHPに伝えるにはどうすればよいですか?
次のセットアップがあります。 (internet) ---> [ pfSense Box ] /-> [ Apache / PHP server ] [running HAproxy] --+--> [ Apache / PHP server ] +--> [ Apache / PHP server ] \-> [ Apache / PHP server ] HTTPは、これが機能要求のための偉大な、要求がうまく私のApacheサーバに配布されています。SSLリクエストの場合、TCP負荷分散を使用してHAproxyでリクエストを分散しましたが、HAproxyはプロキシとして機能せず、X-Forwarded-ForHTTPヘッダーを追加せず、Apache / PHPサーバーはクライアントの実際のIPアドレス。 そのため、stunnelstunnelがX-Forwarded-ForHTTPヘッダーを追加できることを読んで、HAproxyの前に追加しました。ただし、pfSenseにインストールできるパッケージはこのヘッダーを追加しません...また、これはKeepAliveリクエストを使用する機能を強制的に無効にします。しかし、そのアイデアを殺した最大の問題は、stunnelがHTTPSリクエストをプレーンなHTTPリクエストに変換したため、PHPがSSLが有効になっていることを知らず、SSLサイトにリダイレクトしようとしたことです。 HAproxyを使用して複数のSSLサーバー間で負荷を分散し、それらのサーバーがクライアントのIPアドレスと SSLが使用されていることを知るにはどうすればよいですか?そして、可能であれば、pfSenseサーバーでどうすればよいですか? または、これをすべて削除してnginxを使用する必要がありますか?

3
HAProxyでTCPロードバランシングを使用する場合、すべてのアウトバウンドトラフィックはLBを通過しますか?
私はVMを使用してホストされるアプリを設定しています(おそらくAmazonですが、それは石では設定されていません)。これは、HTTP負荷分散と多数の(可能な場合50k程度)永続的なTCP接続の負荷分散の両方を必要とします データ量はそれほど多くありませんが、更新は頻繁に行われます。 現在、ロードバランサーを評価していますが、HAProxyのアーキテクチャについて少し混乱しています。HAProxyを使用してTCP接続のバランスを取る場合、結果のトラフィックはすべてロードバランサーを通過する必要がありますか?もしそうなら、別のソリューション(LVSやnginx_tcp_proxy_moduleなど)がより適していますか?

8
HAProxyを使用したリモートIP
いくつかの問題を抱えている新しいWebサーバーのセットアップをテストしています。基本的に、Webサーバーがあり、コードはいくつかの興味深いことにリモートIPを使用し、特定のIP(オフィスなど)に保護されたapacheディレクトリも使用します。 ただし、これをha_proxyの背後に追い込んで、さらにアプリケーションサーバーを追加できるようにしましたが、現在では、リモートIPは実際のリモートユーザーではなく、プロキシIPとして常に通過しています。これは、一部の場所に到達できないことを意味し、ユーザーIPが重要な場所でアプリが少し奇妙に動作しています。 設定は次のとおりです。 global maxconn 4096 pidfile /var/run/haproxy.pid daemon defaults mode http retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen farm xxx.xxx.xxx.xxx:80 mode http cookie GALAXY insert balance roundrobin option httpclose option forwardfor stats enable stats auth username:userpass server app1 xxx.xxx.xxx.xxx:80 maxconn 1 check
19 haproxy 

2
HAProxy HTTP vs TCP
HAProxyには、モードをTCPまたはHTTPに設定するオプションがあります。また、ポートを設定することもできます。 では、ポートを選択できるのであれば、なぜHTTPとTCPを選択できるのでしょうか?確かにHTTPが必要な場合、TCPとポート80を選択できますか? なぜTCPとHTTPだけなのですか?HTTPはTCPではないことを暗示しているようです。なぜTCP、HTTP、SNMP、FTPなど、などを持っていないのですか。 なぜHTTPとTCPだけなのか?HTTPがTCPの場合、なぜこれらのオプションのいずれかがありますか?それは非常に紛らわしいと思うし、非http(s)サービスの負荷分散に関する情報を見つけることは本当に難しい。
17 haproxy 

5
CentOS 6.3にHAProxyをインストールしますか?
これは奇妙なものです。 CentOS 6のEPELをインストールしました # rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm HAProxyをインストールしようとしました: # yum update # yum install haproxy しかし、受信: Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: ftp.heanet.ie * epel: fedora.mirror.nexicom.net * extras: ftp.heanet.ie * updates: ftp.heanet.ie Setting up Install Process No package haproxy available. Error: Nothing to do …
17 haproxy  rpm  repository  epel 

1
HAProxyを使用してホスト名に基づいてトラフィックを迂回させる方法は?
HAProxyが他のさまざまなポートでリッスンするアプリサーバーのセットをセットアップすることで、最初の成功を収めました。 現在、1つのポートでリッスンしている別のWebサーバーがあり、ホスト名ごとにトラフィックを流すために構成にどのような変更を加えるかを考えています。 以下は、現在のセットアップです。 私のApache Webサーバーはexamplecom:8001で実行されています 私のアプリサーバーの束0.0.0.0:8081、0.0.0.0:8082、0.0.0.0:8083 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 debug #quiet #user haproxy #group haproxy defaults log global mode http option httplog option dontlognull retries 3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen appservers 0.0.0.0:80 mode http balance roundrobin option …


2
HAProxyのリロード-古いプロセスは終了しませんでした
クライアント/サーバー/接続タイムアウトが120秒のTCPモードでHAProxyをセットアップしています。 設定のリロードが速すぎると、複数のプロセスが発生することがあります。設計上、これは想定されているため、確立されたすべての接続が排出されます。 私の問題は、すべての接続が閉じられても、決して終了しないことです。 ps aux | ハプロキシ haproxy 12483 0.0 0.1 103748 1084 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405 haproxy 12485 0.0 0.1 103748 1088 ? Ss 20:45 0:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf 12405 haproxy 12487 0.0 0.1 103748 1084 ? …
15 haproxy 

3
haproxyおよびサーバーへのクライアントIPアドレスの転送
HAproxyに問題があります。 着信HTTP要求を5つのWebサーバーに分散するロードバランサーとしてHAproxyを使用します。通常、クライアントリクエストは、ロードバランサーのIPを使用してWebサーバーに転送されます。しかし、Webサーバーから何かを要求するクライアントIPまたは実際のIPが必要です。実際のクライアントのIPを記録する必要があるためです。 WebサーバーでクライアントのIPを取得しようとしましたが、今のところ成功しません。ロードバランサーのIPが常に表示されます。 x-forward-forオプションを使用しますが、問題は解決しません。その後、別のオプション「source 0.0.0.0:80 usesrc clientip」を見つけましたが、HAproxyのUSE_TPROXYオプションを使用したコンパイルの必要性に関するHAproxyを実行しようとするとエラーが発生しました。USE_TPROXYオプションを使用してHAproxyを再コンパイルしましたが、何も変更しません。実際のクライアントのIPを学習するために何ができますか。 私のLinuxカーネルバージョンは2.6.32-34です。つまり、カーネルは透過プロキシをサポートしています。UBUNTU 10.4 LTSを使用します 私の設定ファイルはこちら global maxconn 100000 uid 99 gid 99 daemon defaults option forwardfor except 127.0.0.1 mode http (1)source 0.0.0.0:80 interface hdr_ip(x-forwarded-for,-1) (2)source 0.0.0.0:80 usesrc clientip contimeout 5000 clitimeout 50000 srvtimeout 50000 listen myWeb 0.0.0.0:80 mode http balance source option forwardfor header …
15 haproxy 

2
ACLが一致しない場合にHAProxyから404を提供する
現在、1.5dev-17を使用してHAProxyを再構成しています。特定のリクエストに使用するバックエンドがない場合、404エラーを返します。 現在の設定ではdefault_backendを使用してdjangoアプリサーバーにルーティングしますが、他の設定されたバックエンドのいずれにも一致しない(ペンテストなどの)プローブリクエストが大量にある場合、djangoサーバーは試行時に停止しますこれらの無効なリクエストを処理し、最終的に404を返します。 djangoバックエンドに委任するのではなく、HAProxyから404を提供したいと思います。私は現在、ハックでこれを達成しています: frontend www ... default_backend nomatch backend nomatch errorfile 503 /var/www/http/404.http そして、404.httpファイル内で、ヘッダーに404ステータスコードを設定します。これは機能しますが、非常に間違っています。HAProxyでこれを達成するより良い方法はありますか?または、通常のバックエンドを使用して、そのハンドルに404で応答させるだけですか?

1
SSLを終了するHAProxyは、SSLをバックエンドサーバーに送信します
HAProxyでSSLを終了し、ヘッダーを操作し、URLを書き換え、トラフィックを再暗号化し、SSLとしてバックエンドサーバーに送信しますか? 私はこれを行う方法を見つけることができないようです。通常のSSL終了を完了させ、プレーンHTTP要求をバックエンドに送信できます。ただし、バックエンドにSSLを送信する必要があります。 次の機能が必要です。 x-forwarded-forヘッダーを抽出して、プロキシの背後にある実際のクライアントIPを取得します。 Cookieを使用してセッションスティッキを実装します。 URLの書き換えを行います。 Cookieベースのセッションスティッキネスを使用して、SSLトラフィックをバックエンドに送信します。 haproxyの終了時にSSLを終了しない限り、URLの書き換えを完了できません。 ここの善良な人々からの助けは大歓迎です。
14 haproxy 

3
フェイルオーバーを使用してHAProxyをセットアップする方法
HAProxy負荷分散セットアップでフェイルオーバーを取得するには、HAproxyを実行している2台のマシンが必要である(そして複数のWebサーバーインスタンスにルーティングする)ことを理解しています。しかし、この場合、abcd.comで、このトラフィックを1つではなく2つのIPアドレスに分割/ルーティングするにはどうすればよいでしょうか?DNSは通常、ドメイン名を単一のIPに解決します。無料/格安のツール/サービスを使用してこれを行うにはどうすればよいですか?

1
HAProxy-URIに基づいて別のWebサーバーに転送する
次の構成のHTTPファームがあります。 listen webfarm 10.254.23.225:80 mode http balance roundrobin cookie SERVERID insert option httpclose option forwardfor option httpchk HEAD /check.txt HTTP/1.0 server webA 10.254.23.4:80 cookie A check server webB 10.248.23.128:80 cookie B check 特定のURI(/ special)に対するすべてのリクエストを3番目のWebサーバーに転送するオプションを追加したいと思います。どうすればいいですか?

3
haproxy:アプリセッションを開始せずにサーバーのメンテナンスを準備する方法
問題 haproxyを使用してWebサーバーの負荷を分散しています。一部のアプリケーションはセッションファイルを使用しますが、これらはサーバー間で同期されないため、セッションパーシステンスと追加のCookieを使用します。 セッションを中断することなく、メンテナンスのためにサーバーを無効にします。したがって、既存のクライアントがアプリケーションセッションを継続できるようにしたいのですが、新しいクライアントは受け入れません。 haproxyの動作 サーバーを「メンテナンス中」に設定しました クライアントにCookieが設定されている場合は、「メンテナンス中」とマークされていてもサーバーを使用します 新しいクライアント(Cookieなし)が来ると、別のサーバーに転送されます すべてのクライアントがアプリケーションセッションを終了した後、この特定のサーバーに設定されたCookieを持つクライアントはなくなり、ユーザーを中断することなくシャットダウンできます。 これはいくつかのhaproxy構成で達成できると思いますか?それともそれを行う賢い方法はありますか? 他の方法 このニーズを達成する他の方法の非網羅的なリスト: サーバー間でセッションファイルを同期する(複数のサーバー間でファイルを同期する方法、または共通の単一マウントポイントが必要) データベースを使用してセッション情報を保存する(アプリケーションの動作を変更する必要がある) 詳細 この種の構成を使用します。 frontend https-in bind xxx.xxx.xxx.xxx:443 ssl crt /etc/haproxy/ssl/_default.pem crt /etc/haproxy/ssl reqadd X-Forwarded-Proto:\ https acl APP1 hdr(host) -i APP1.atac.local use_backend APP1 if APP1 default_backend _default backend APP1 redirect scheme https if !{ ssl_fc } mode http balance …

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