web-dev-qa-db-ja.com

断続的なWindowsServerの「ログオン障害」の問題を調査する方法は?

私は現在、Apache Webサーバーが優先されるプロジェクトに取り組んでいますが、Windowsは必須です。私はここ数年WAMPを使用していませんが、最近はうまく機能し、安定していると思います。 4つのWebサーバーがあり、それぞれが2つの負荷分散されたペアになっています。 ApacheはWindowsサービスとして実行されています。

同僚は、「ローカルシステムアカウント」よりもカスタムアカウントでApacheを実行する方が安全であるという情報を見つけました。そのため、各ボックスにローカルアカウントが作成され、[サービスのプロパティ]ダイアログボックスの[ログオン]タブに資格情報が入力されています。

Apacheの構成が変更されると、各サービスを再起動する必要があります。これを行うには、[サービス]ウィンドウでApache2.4エントリを選択し、[再起動]ボタンをクリックします。ただし、すべてのボックスで、成功するかどうかはタッチアンドゴーです。失敗すると、次のようなWindowsエラーが発生します。

WindowsはローカルコンピューターでApache2.4サービスを開始できませんでした。

エラー1069:ログオンに失敗したため、サービスを開始できませんでした。

そのため、これが発生するたびに、サービスパスワードを忠実に再度追加すると、常に起動します。私が持っている1つの推測は、ダイアログが与えられたパスワードを忘れているということです。ユーザー名を忘れることはありません。

このローカルユーザーに付与されているアクセス許可を[ローカルセキュリティポリシー]-> [ローカルポリシー]-> [ユーザー権利の割り当て]-> [サービスプロパティとしてログオン]で調べたところ、ユーザー通常はそこにありますが、見つからなくなった場合、Apacheの再起動は失敗します。

これを調べたところ、 これと同じシナリオ (この場合のサービスはPostgreSQLですが)でした。しかし、私の見解では、ローカルシステムアカウントを使用するという受け入れられた答えは、提起された質問に対する答えではありません。問題は、なぜユーザーがサービスとしてログオンする権利を失うのかということです。

1
halfer

これらのWindowsサーバーがドメインのメンバーである場合、一部のグループポリシーがこの「サービスとしてのログオン」ローカルポリシーを上書きしている可能性があります。

1
bcs78

設定をリロードするためにApacheHTTPサーバーを再起動する必要はありません。実行するだけです。

C:\Apache24\bin\httpd.exe -k restart

このようにして、子Apache HTTPサーバープロセスのみが再起動され、サーバーはリクエストを見逃しません。

2
David Le Borgne

同僚とこれについて話し合ったので、bcs78が言うように、グループポリシーが物事を変更していると確信しています。また、ポリシーが変更される可能性はないとのことです。

我々は持っています:

  1. どのADグループにも属していない2つのインターネット向けWebサーバー
  2. サイト全体のADグループ内のLAN上の2つのWebサーバー
  3. (2)と同じADグループ内のLAN上のテスト開発サーバー

問題が発生したサーバーを正確に把握できませんでしたが、ADサーバー(2)と(3)だけである可能性は十分にあります。これらはLANサーバーであり、ファイアウォールの背後にあるため、Apacheを「ローカルシステムアカウント」として実行するためにこれらを元に戻すことにしました。

(1)の前面のWebサーバーがこのポリシーの影響を受けないことを期待しているので、そこで好みの構成を維持できます。

0
halfer