2017-03-07 8 views
0

HAProxy 1.7を使用してサードパーティサービスの負荷を分散する必要があります。各サーバーには固有の基本認証ヘッダーが必要です。どこ私はバックエンドサーバ間の「ラウンドロビン」することができます私は、下記の本と同様のアプローチを探していますが、各サーバーは、別のHTTPヘッダーを必要とします:HAProxyでサーバー単位でカスタムヘッダーを設定する

frontend http-in 
    bind *:80 
    use_backend servs 

backend servs 
    reqidel '^Authorization:.*' 
    reqadd 'Authorization: Basic blahblahblah' 
    server url1 asdf.example.com:8080 check ssl verify none 
    reqidel '^Authorization:.*' 
    reqadd 'Authorization: Basic blah2blah2blah2' 
    server url2 asdf.example.com:8081 check ssl verify none 

このアプローチだけで史上初のサーバー(URL1)を使用しています。

+0

2台のサーバー間でロビンを丸める方法はありますか? – Ares

+0

2つのサーバー間でラウンドロビンを行う方法は、「Authorization」ヘッダーをサーバーごとに異なる値に設定する方法です。 – Flash

+0

'hdr()'関数を見てください。あなたが望むものではありませんが、それはスタートです。たとえば、2番目のダミーヘッダーを使用することで十分な場合もあります。 – Ares

答えて

0

ロードバランスされている各サーバーのカスタムヘッダーを使用できるように、次のソリューションを実装しました。

frontend http-in 
    bind *:80 
    use_backend proxy 

backend proxy 
    balance roundrobin 
    server url1-proxy 0.0.0.0:8080 
    server url2-proxy 0.0.0.0:8081 

listen url1-proxy 
    bind *:8080 
    reqidel '^Authorization:.*' 
    reqadd 'Authorization: Basic blahblahblah' 
    server url1 asdf.example.com:8080 check ssl verify none 

listen url2-proxy 
    bind *:8081 
    reqidel '^Authorization:.*' 
    reqadd 'Authorization: Basic blah2blah2blah2' 
    server url2 asdf.example.com:8081 check ssl verify none 
+0

と動作しますか? – Aleksandar

+1

@Aleksはい、うまくいきます。これにより、各バックエンドサーバーに特定のオプションが適用されます。 – Flash

関連する問題