Apache, Lighttpd, nginx, Cherokee
cronet
Posts: 83 Joined: 2003-07-21 13:37
Location: Augsburg
Post
by cronet » 2006-12-12 10:58
Hallo,
habe folgendes Problem:
Mein Apache verweigert ab und an mal seinen Dienst. Das passiert, wenn ich des öfteren auf einer Seite herumklicke dass ich einen 403 bekomme.
Im Error Log taucht dann sowas auf:
Code: Select all
[Tue Dec 12 10:42:29 2006] [error] [client 85.182.125.43] client denied by server configuration: /var/www/virtual/site1/htdocs/alt/sites/static.php
[...]
Userrechte sind richtig gesetzt. Der Vhost ist wie folgt konfiguriert:
Code: Select all
[...]
<Directory /var/www/virtual/site1/htdocs>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[...]
Zuerst dachte ich es kommt vom mod_evasive. Der würde ja aber ein Mail schicken.Ich hab ihn trotzdem disabled. Immer noch derselbe Fehler.
Woran könnte es denn noch liegen?
Gruß, Alexander
cronet
Posts: 83 Joined: 2003-07-21 13:37
Location: Augsburg
Post
by cronet » 2006-12-13 14:27
Könnte es daran liegen dass zu wenig Apache Prozesse zur verfügung stehen, und er quasi mit der Abarbeitung nicht nachkommt?
Dann würden doch aber Timeouts produziert werden und nicht Forbidden-Meldungen?
Roger Wilco
Posts: 5923 Joined: 2004-05-23 12:53
Post
by Roger Wilco » 2006-12-13 18:37
Cronet wrote: Könnte es daran liegen dass zu wenig Apache Prozesse zur verfügung stehen, und er quasi mit der Abarbeitung nicht nachkommt?
Nein.
Cronet wrote: Dann würden doch aber Timeouts produziert werden und nicht Forbidden-Meldungen?
Richtig. Du hast wahrscheinlich eine Direktive in deiner übrigen Konfiguration, die den Zugriff verbietet, z. B.
Code: Select all
<Directory />
Deny from All
</Directory>
cronet
Posts: 83 Joined: 2003-07-21 13:37
Location: Augsburg
Post
by cronet » 2006-12-14 10:51
Das hab ich leider nicht (wär ja zu einfach gewesen).
Müsste dann nicht auch immer ein Forbidden kommen?
Wie gesagt: Der Fehler tritt auf, wenn ich öfter auf einer Seite herumklicke.
Er macht ja auch alle Seiten auf: Nur irgendwann verweigert er bei einer Seite (die er vorher schonmal geöffnet hat) seinen Dienst...
flo
Posts: 2223 Joined: 2002-07-28 13:02
Location: Berlin
Post
by flo » 2006-12-14 11:40
mod_security oder sonst irgendetwas aktiv, daß die Herumklickerei als DOS auffassen könnte? Wenn das einmal passiert und beim anderen Mal nicht, ist das komisch.
flo.
cronet
Posts: 83 Joined: 2003-07-21 13:37
Location: Augsburg
Post
by cronet » 2006-12-14 16:56
Nein... kein derartiges Modul aktiviert.
mod_evasive hatte ich laufen, aber natürlich gleich als erstes deaktiviert. Fehler ist immer noch da.
Roger Wilco
Posts: 5923 Joined: 2004-05-23 12:53
Post
by Roger Wilco » 2006-12-14 17:10
Ohne deine Konfiguration können wir noch gut und gerne bis Sylvester 2008 weiterraten...
cronet
Posts: 83 Joined: 2003-07-21 13:37
Location: Augsburg
Post
by cronet » 2006-12-18 00:23
hier meine apache2.conf.
Die langen Languagesettings habe ich ausgelassen...
Code: Select all
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 150
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
AcceptMutex fcntl
</IfModule>
User www-data
Group www-data
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
ErrorLog /var/log/apache2/error.log
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
Alias /error/ "/usr/share/apache2/error/"
<Directory "/usr/share/apache2/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
[...]
</IfModule>
</IfModule>
DirectoryIndex index.htm index.html index.cgi index.pl index.php index.xhtml index.php4
AccessFileName .htaccess
<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>
UseCanonicalName Off
TypesConfig /etc/mime.types
DefaultType text/plain
HostnameLookups Off
IndexOptions FancyIndexing VersionSort
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
[...]
AddType application/x-tar .tgz
<FilesMatch ".shtml(..+)?$">
SetOutputFilter INCLUDES
</FilesMatch>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
ServerTokens Prod
Include /etc/apache2/sites-available/vhosts.conf
Und hier der Anfang + 1 VHost aus vhosts.conf:
Code: Select all
NameVirtualHost 12.345.67.89:80
<VirtualHost 12.345.67.89:80>
ServerAdmin postmaster@site1.de
DocumentRoot /var/www/virtual/site1.de/htdocs
ServerName site1.de
ServerAlias www.site1.de *.site1.de
ErrorLog /var/log/apache2/users/site1.de-error.log
TransferLog /var/log/apache2/users/site1.de-access.log
CustomLog /var/log/apache2/site1.de-traf.log traff
CustomLog /var/log/apache2/site1.de-combined.log combined
Alias /errors /var/www/virtual/site1.de/errors/
<Directory /var/www/virtual/site1.de/errors/>
php_admin_value open_basedir "/var/www/virtual/site1.de/errors/"
</Directory>
ErrorDocument 401 /errors/401/index.php
ErrorDocument 403 /errors/403/index.php
ErrorDocument 404 /errors/404/index.php
ErrorDocument 500 /errors/500/index.php
ScriptAlias /cgi-bin/ /var/www/virtual/site1.de/cgi-bin/
<Directory /var/www/virtual/site1.de/cgi-bin>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
php_admin_value open_basedir "/var/www/virtual/site1.de:/var/www/virtual/site1.de/phptmp:/usr/share/pear"
php_admin_value upload_tmp_dir "/var/www/virtual/site1.de/phptmp"
php_admin_value session.save_path "/var/www/virtual/site1.de/phptmp"
php_admin_value sendmail_path '/usr/sbin/sendmail -fuser1001 -t -i'
<Directory /var/www/virtual/site1.de/htdocs>
Options -Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Wo hab ich denn da nun Mist gebaut?
flo
Posts: 2223 Joined: 2002-07-28 13:02
Location: Berlin
Post
by flo » 2006-12-18 00:52
Code: Select all
CustomLog /var/log/apache2/site1.de-traf.log traff
Ist "traff" definiert?
Die Server-Einstellungen sind extrem low - nimmst Du worker oder prefork?
Die Modulkonfig steht übrigens in Includern :-)
flo.
cronet
Posts: 83 Joined: 2003-07-21 13:37
Location: Augsburg
Post
by cronet » 2006-12-18 06:35
Traff ist definiert und ich verwende Prefork.
Ich hatte mal Testweise die Einstellungen des Prefork höher gesetzt. Leider auch kein Erfolg.
Code: Select all
<IfModule mod_userdir.c>
UserDir /var/www/virtual/*/htdocs
UserDir disabled root
<Directory /var/www/virtual/*/htdocs>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews +Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule>