0

LDAP 認証を使用する Web サイトがあります。冗長性のために 2 つのアクティブ ディレクトリ サーバーがあります。プライマリ サーバーがダウンしている場合、認証はバックアップ サーバーで処理する必要があります。これを達成するために以下を使用してみました:

  $LDAP_SERVER = "10.100.10.1";
  $LDAP_SERVER_BACKUP = "10.100.10.2";

  $ldap_mycorp = ldap_connect($LDAP_SERVER);

  if(!$ldap_mycorp){
    $ldap_mycorp = ldap_connect($LDAP_SERVER_BACKUP);
  }

しかし、プライマリ サーバーへの接続が失敗した場合、「ldap_connect($LDAP_SERVER)」は false ではなくリソース ID を返すことに気付きました。これは、if ステートメントが使用されないことを意味します。

スクリプトの後半にコードを追加することで、この問題を回避する方法を見つけましたが、上記のコンテキスト内で問題を処理するための解決策が必要ですか?

4

2 に答える 2

0

ホスト名パラメーターは、スペースで区切られたホスト名のリストにすることができます。これは、メイン サーバーが動作していない場合、LDAP コードがバックアップ サーバーと通信することを意味します。コードがメイン サーバーと通信しようとしてタイムアウトになるまで遅延が発生しますが、それでも機能します。

$LDAP_SERVERS = "10.100.10.1 10.100.10.2";
$ldap_mycorp = ldap_connect($LDAP_SERVERS);
于 2013-03-28T14:31:09.823 に答える
0

これはあなたが探しているものですか? http://php.net/manual/en/function.ldap-error.php

エラーがない場合に何が返されるかはわかりませんが、正しい方向への一歩を踏み出すはずです。以前のサーバーが失敗した場合に複数のサーバーに自動的に接続するという回答が得られたので、接続にエラーがないかどうかを確認する必要があります;)

于 2013-03-28T14:31:55.827 に答える