問題タブ [haproxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
http - nginx での OPTIONS リクエストの処理
現在 HAProxy をロード バランサーとして使用しており、OPTIONS リクエストを使用してダウンストリーム ボックスに定期的にリクエストを送信し、それらが有効であることを確認します。
オプション /index.html HTTP/1.0
nginx をキャッシング付きのリバース プロキシとして設定する作業を行っています (ncache を使用)。何らかの理由で、OPTIONS リクエストが着信したときに nginx が 405 を返しています。
192.168.1.10 - - [22/Oct/2008:16:36:21 -0700] "オプション /index.html HTTP/1.0" 405 325 "-" "-" 192.168.1.10
ダウンストリーム Web サーバーに直接アクセスすると、適切な 200 応答が返されます。私の質問は、nginx がその応答を HAProxy に渡すようにする方法、または nginx.conf で応答を設定するにはどうすればよいかということです。
amazon-ec2 - Amazon EC2 での負荷分散?
Amazon EC2 で数日間HAProxyと格闘してきました。これまでの経験は素晴らしいものでしたが、ソフトウェア ロード バランサーからより多くのパフォーマンスを引き出すことに行き詰まっています。私たちは正確には Linux ネットワーキングの達人ではありません (通常、私たちは .NET ショップです) が、適切な ulimit の設定を試み、カーネル メッセージと tcpdumps に不規則性がないかどうかを調べて、これまでのところ独自のものを保持してきました。ただし、これまでのところ、約 1,700 リクエスト/秒の横ばい状態に達しており、その時点でクライアントのタイムアウトが大量に発生しています ( httperfを使用して微調整してきました)。この目的のために)。同僚と私は最新の Stack Overflow ポッドキャストを聞いていました。Reddit の創設者は、サイト全体が 1 つの HAProxy ノードで実行されており、これまでのところボトルネックにはなっていないと述べています。あっ!どういうわけか、多くの同時リクエストが表示されないか、何かひどく間違っているか、または EC2 の共有の性質が Ec2 インスタンスのネットワーク スタックを制限している (私たちは大きなインスタンス タイプを使用しています)。Joel と Reddit の創設者の両方が、ネットワークが制限要因になる可能性が高いことに同意しているという事実を考慮すると、それが私たちが目にしている制限である可能性はありますか?
どんな考えでも大歓迎です!
編集実際の問題は、実際にはロードバランサーノードではなかったようです! この例では、実際には httperf を実行しているノードが原因でした。httperf はリクエストごとにソケットを構築および破棄するため、カーネルでかなりの量の CPU 時間を消費します。リクエスト レートを高くすると、TCP FIN TTL (デフォルトでは 60 秒) がソケットを長く保持しすぎ、ip_local_port_range のデフォルトがこの使用シナリオに対して低すぎました。基本的に、クライアント (httperf) ノードが絶えず新しいソケットを作成および破棄してから数分後、未使用のポートの数が不足し、この段階で後続の「リクエスト」がエラーになり、1 秒あたりのリクエスト数が少なくなり、大量のポートが生成されました。エラーの。
nginx も検討しましたが、RighScale と連携しており、HAProxy 用のドロップイン スクリプトがあります。ああ、それが絶対に必要であることが証明されない限り、[もちろん]コンポーネントを切り替えるには締め切りがきつすぎます。幸いなことに、AWS にいることで、nginx を並行して (保証されている場合) 使用して別のセットアップをテストし、後で夜通し切り替えることができます。
このページでは、各 sysctl 変数についてかなり詳しく説明しています (この場合、ip_local_port_range と tcp_fin_timeout は調整されています)。
amazon-ec2 - 動的な Ec2 インスタンス管理のための RightScale と Scalr に関するご意見
Ec2 で Web アプリを管理するための費用対効果の高いツールを探しています。Rightscale は大きな犬のように見え、料金を請求します。Scalr はより費用対効果の高いソリューションのように見えますが、実際の顧客体験を見つけるのは困難です..
私が探している重要な側面は、ロード バランサー (http および https) と、負荷が増加したときに追加の Web サーバーの容量を自動的にオンラインにし、負荷が低下したときにインスタンスを終了する方法です。
私が知る限り、多くの人がここで独自のものを展開しています。私たちはアプリをリリースしようとしていますが、あまりにも多くの重いシステム管理者の戦いを戦う必要はありません. パフォーマンスなどの重要性を考えると、これについて現場からアドバイスや経験を聞いていただければ幸いです.
apache - SSL リクエストを処理し、HAproxy に渡す Apache
バックエンドの Apache Web サーバーにリクエストを転送する Haproxy を使用して、フロントエンドのリバース プロキシとして設定しようとしています。私の問題は、Apache を使用して SSL 要求を処理することに失敗したことです。
Haproxy が SSL リクエストを処理できないことはわかっているので、ポート 443 でクライアントのリクエストを受け入れて Haproxy に転送するように Apache をセットアップしようとしています。誰もこれを成功させましたか?はいの場合、Apache と Haproxy の構成の例を教えてください。
ssl - HAProxyは1つのIPとポートでWebサーバーとSSLVPNの両方を前面に出すことができますか?
1つのIP/ポートに配置してLablzWebサーバーとSSLVPNAdito(SSL Explorerフォーク)の両方を前面に出すには、リバースプロキシが必要です。Nginxでそれを達成できませんでした。Aditoを汎用リバースHTTPプロキシとして使用できませんでした。
HAProxyは、HTTPトラフィックを検知しない場合、TCPプロキシにフォールバックできますか?言い換えると、レイヤー7の検査でこれがHTTPトラフィックではないと判断された場合、レイヤー4にフォールバックできますか?
これが私の設定です
- 1つのパブリックIP(Elastic IP)を備えたEC2マシン。
- 開いているポートは1つだけです-443。
- Stunnelは443上にあり、トラフィックをHAProxyに渡します(Stunnelを使用するのは好きではありませんが、Nginxとは異なり、HAProxyはまだSSLを完全にサポートしていません)。
- HAProxyは、一部のHTTPトラフィックを1つのサーバー(SVNサーバーの前にあるApacheサーバー)に渡し、残りのHTTPトラフィックをLablz Web/Appサーバーに渡すように構成する必要があります。
- HTTP以外のすべてのトラフィックは、AditoVPNに転送する必要があります。
- このトラフィックは次のとおりです。
- VNC、NX、SMB
- ...およびAditoがサポートする他のすべてのプロトコル
- このトラフィックは次のとおりです。
トラフィックをHTTPと非HTTPに分割するために送信元IPアドレスまたはポートに依存することはできません。
それで、そのような設定はHAProxyで実行できますか?これに他のリバースプロキシを使用できますか?私がHAProxyについて正しく考えておらず、別のアプローチが可能かどうかを教えてください。
ところで、Adito SSL VPNは素晴らしく、このセットアップが機能すれば、Lablz開発者にクラウド内のボックスへの素晴らしいワンクリックシングルログインの安全なVNC-over-HTTPSアクセスを提供できるようになります。
これに対する解決策はありませんが、Aditoを介して-私が間違っていることを証明してください。ただし、VNCoverSSHの方が優れているとは言わないでください。はい、VNC-over-SSHはより高速で安全ですが、(ターゲットユーザーベースにとって)セットアップがはるかに難しく、ユーザーがポート22でのアウトバウンドトラフィックを許可するファイアウォールの背後にいると想定します(常にそうであるとは限りません)。
その上、Aditoはリモートアクセスゲートウェイをはるかに超えています-それは本格的なブラウザ内VPN、ソフトウェアディストリビューションプラットフォームなどです。私はAditoの人とは関係がありません-Lablzブログの私のAditoの投稿を参照してください。
load - EC2 でのエラスティック ロード バランシング
しばらく前から考えていましたが、Amazon がElastic Load Balancing (ELB) をリリースした今、トラフィックの多い Web アプリケーションにこのソリューションをデプロイすることについてどう思いますか?
HAProxyを置き換える必要がありますか、それとも ELB を HAProxy の前の無料サービスと見なす必要がありますか?
scalability - HAProxy と「シャーディング」
誰かが HAProxy をシャーディングに使用したことがあるかどうか疑問に思っていました。具体的には、私が定義した Cookie を識別子とともに使用し、その Cookie/識別子の組み合わせを提示するクライアントを同じサーバーに転送できるようにしたいと考えています。それは可能だと思われ、私の予備テストは機能しているようですが、よくわかりません。
私のリッスン構成は次のようになります。
ただし、ライブ HTTP ヘッダーを使用して要求ヘッダーを見ると、どのサーバーに送信されるかを示す mysession Cookie が表示されません。これは、プレフィックス操作に基づいて期待したものです。私はHAProxyを初めて使用するので、ヘルプ/ガイダンスは素晴らしいでしょう!
load-balancing - 新しいサーバーへのセッション転送を使用して HAProxy でスティッキー負荷分散を行う方法
スティッキー セッションに appsession 構成要素を使用しています。私は 5 つの weblogic インスタンスを持っており、そのうち 3 つがアクティブで、負荷が増加すると負荷を処理し、追加の 2 つのインスタンスを開始します。HAProxy はそれらを「正常」とマークしますが、スティッキーであるためトラフィックを転送しません。
既存のセッションを新しい weblogic サーバーに転送する方法を教えてください。セッション クラスタリングに Terracotta を使用しているため、どのサーバーが要求を処理しているかは問題ではありません。以下は、HAProxy の構成です。
web-applications - アウトバウンドappserver接続を統合するようにHAProxyを設定する方法
HAProxyサーバーを使用して、バインドされたアプリケーションサーバー要求を統合したいと思います。私のアプリケーションはサードパーティの外部サービスと対話しますが、単一のIPアドレスを使用してこれらのサービスと対話できるようにしたいと考えています。また、HTTPとHTTPSを介してこれを実行できるようにしたいと思います。これを行うための構成の例をいただければ幸いです。ありがとう