Wer killt meinen Apache?

luco

Registered User
Hallo Leute,
ich hätte da mal wieder ein schönes Problem bei dem ich selber nicht ganz weiter weiß.
Mein Apache segnet manchmal das zeitliche. Im Error_log ist dann nur:

Code:
[Thu May 03 06:15:01 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Thu May 03 06:15:01 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
Syntax error on line 101 of /etc/apache2/server-tuning.conf:
Invalid command 'BrowserMatch', perhaps misspelled or defined by a module not included in the server configuration



[Sat May 05 17:15:01 2007] [notice] Graceful restart requested, doing restart
[Sat May 05 17:15:01 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Sat May 05 17:15:01 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Sat May 05 17:15:01 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
Syntax error on line 101 of /etc/apache2/server-tuning.conf:
Invalid command 'BrowserMatch', perhaps misspelled or defined by a module not included in the server configuration



[Mon May 07 11:15:03 2007] [notice] Graceful restart requested, doing restart
[Mon May 07 11:15:03 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
[Mon May 07 11:15:03 2007] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)
Syntax error on line 101 of /etc/apache2/server-tuning.conf:
Invalid command 'BrowserMatch', perhaps misspelled or defined by a module not included in the server configuration

zu lesen. Was natürlich irgendwie nonsense ist, denn wenn es dort ein Fehler gibt warum gibt es denn nur ab und zu? Beim Start von Apache meckert er ja auch nicht darüber!
Ein SKript hielt den Apache nun am leben, also wenn er down war wurde er wieder gestartet, keine Lösung aber immerhin für den Übergang.
Heute nun gab es folgendes im Access_Log:

Code:
[#IP-ADRESSE#] - - [08/May/2007:15:06:27 +0200] "GET /error_404.htm HTTP/1.1" 302 314 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FunWebProducts; .NET CLR 1.1.4322; InfoPath.1)"

Davon ungefährt hunderte Einträge mehrere pro Sekunde.
Der Apache segnete kurz danach das zeitliche.
Mod_evasive läuft eigentlich auch wenn ich test.pl aufgrund "permission denied" nicht ausführen kann zum Testen.

Auch das Skript zum Neustart versagte denn manuell den Apache neustarten ging auch nicht:
Code:
Warning: found stale pidfile (unclean shutdown?)
Starting httpd2 (prefork) (98)Address already in use: make_sock: could not bind to address [::]:443
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
startproc:  exit status of parent of /usr/sbin/httpd2-prefork: 1

Wirklich zu finden ist zum dem ganzen Thema nichts!
Weshalb ich hoffe, dass ich hier im Forum ein wenig Antwort erhalte.
Viellicht weiß ja der ein oder andere etwas weiter.

Vielen Dank dafür im Voraus!
MfG
 
Code:
Syntax error on line 101 of /etc/apache2/server-tuning.conf:
Invalid command 'BrowserMatch', perhaps misspelled or defined by a module not included in the server configuration

Diesen Fehler solltest du ziemlich schnell beheben. Dann mal weiterschauen.
 
Vielen Dank für deinen gut gemeinten Tipp!!!
Wie soll ich das denn anstellen?
Die betreffende Zeile ist völlig unberührt und es lief mit dieser Datei ja auch vorher.
Daran kann es also nicht liegen, weshalb ich auf Hilfe von euch angewiesen bin, ob jemand schonmal sowas hatte auf seinem Root.
Vielen Dank!
 
Invalid command 'BrowserMatch', perhaps misspelled or defined by a module not included in the server configuration
Ist schon schwierig mal schnell in der Doku nach BrowserMatch zu schauen. Wahrscheinlich ist das dazugehörige Modul mod_setenvif nicht mehr aktiv.

Davon ungefährt hunderte Einträge mehrere pro Sekunde.
Das nennt man einen DoS.

Address already in use: make_sock: could not bind to address [::]:443
Hier dümpelt noch ein alter Apache-Thread rum, der sich wahrscheinlich nicht freiwillig verabschieden wird.

huschi.
 
Guten Morgen und danke für deine Antwort!

mod_setenif wird geladen:
Code:
LoadModule setenvif_module                /usr/lib64/apache2-prefork/mod_setenvif.so

Kann ich sehen ob es während der Laufzeit sich verabschiedet?

DoS sollte doch eigentlich eingegrenzt sein mit mod_evasive richtig?
 
... Kann ich sehen ob es während der Laufzeit sich verabschiedet? ...

Die Anweisung steht in der Konfig Datei. Das heisst aber noch nicht, das das Modul geladen ist/wird. Sollte das Modul nicht geladen werden können, müsste eine entsprechende Meldung im Apache Error Log auftauchen.

-

Da mir gerade nicht der (sicherlich existierende) Befehl einfällt, um sich vom Apache (apachectrl(?)) die geladenen Module anzeigen zu lassen, habe ich bloss die Variante mit lsof (list open files):

Code:
lsof |grep httpd | grep mod_setenvif.so

Bringt das Kommando keine Ausgabe, dann mal den letzten grep Teil weglassen. Dann bekommst du alle Dateien aufgelistet, die vom httpd geöffnet/geladen sind.
 
Danke!

Code:
 # lsof |grep httpd | grep mod_setenvif.so
httpd2-pr 18931       root  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 26826     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 26866     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 26867     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27094     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27096     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27103     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27106     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27142     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27146     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27148     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27154     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27163     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27166     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so
httpd2-pr 27167     wwwrun  mem       REG                9,0    11584    4326642 /usr/lib64/apache2/mod_setenvif.so

scheint also geladen zu sein ja?
 
... scheint also geladen zu sein ja?

Yep, das ist richtig. :)

So, nun schau dir doch bitte nochmal genau die Zeile an, die dein Modul lädt, und die Ausgabe von lsof. Man richte seine Aufmerksamkeit in beiden Fällen auf den Pfad des Modules. ;) Ich denke da stimmt etwas nicht.
 
DoS sollte doch eigentlich eingegrenzt sein mit mod_evasive richtig?
Das ist immer noch die Frage Deiner Einstellungen. :)

Gib mal etwas zu Deinem System bekannt.
Die Differenz in den Verzeichnissen weißt auf ein Suse hin.

huschi.
 
Back
Top