PDA

Bekijk Volledige Versie : Apache virtualhosts limit?



WH-Tim
18/12/05, 14:29
Is er in apache een aantal maximum virtualhosts die ik kan instellen? Ik heb best een flinke berg virtualhosts goed voor zo'n 500+ kb httpd.conf, en als ik nu nog nieuwe virtualhosts doe toevoegen dan start de apache server wel gewoon op zonder logvermeldingen, maar dan kan ik via de browser geen enkele website meer bereiken. Haal ik dan een paar virtualhosts uit de config (de laatst toegevoegde) dan werkt het weer. De virtualhosts opzich zijn goed geconfigged, precies hetzelfde scriptje als alle andere hosts. Anders een instelling misschien?

petert101
18/12/05, 14:38
logfile(s) probleem

WH-Tim
18/12/05, 14:55
Och de logfile is pas 252mb groot :p

WH-Tim
18/12/05, 15:03
Origineel geplaatst door petert101
logfile(s) probleem

Ik heb de logfiles gegzipt en nieuwe lege logfiles aangemaakt en werkt wel sneller, maar als ik dan de virtualhosts terugplaats dan werkt hij gewoon weer niet.

petert101
18/12/05, 15:25
Origineel geplaatst door WH-Tim


Ik heb de logfiles gegzipt en nieuwe lege logfiles aangemaakt en werkt wel sneller, maar als ik dan de virtualhosts terugplaats dan werkt hij gewoon weer niet.

het gaat om het aantal file descriptors. Als je 5000 files opent voor loggen dan trekt apache dat niet (of eigenlijk je os niet).

http://www.google.nl/search?q=apache+logfiles+limit&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official

en

http://httpd.apache.org/docs/1.3/vhosts/fd-limits.html (geldig voor (bijna) alle versies)

wv-
18/12/05, 15:29
alles loggen naar 1 grote virtualhost file is de oplossing. Daarna kan je die nog splitsen met split-logfile ofzo van apache.

Capt.Pascal
19/12/05, 11:51
Nu ja , ik veronderstel dat je minstens zoveel threads moet hebben als sites.
Maar of dat echt zo is, is nog maar de vraag.
Ikzelf zorg altijd dat elke site zijn eigen logfile krijgt.
Dat is erg handig met het debuggen van scripts en zo.
Alles in dezelfde logfile stoppen heeft aleen maar zin als je ze toch nooit nakijkt.

jinxedworld
19/12/05, 12:01
In dit geval moet je apache recompilen met een hogere fs.file-max. Gebruik je een controlpanel? Zo ja, welke?

lifeforms
19/12/05, 12:04
Ook wel eens gehad. Om dit te voorkomen heb ik het volgende gedaan voor het compileren van Apache:

setenv CFLAGS '-O3 -mpentium -g -Wall -DFD_SETSIZE=4096'

Of dit op Linux ook gaat werken weet ik niet.

WH-Tim
19/12/05, 12:12
Origineel geplaatst door jinxedworld
In dit geval moet je apache recompilen met een hogere fs.file-max. Gebruik je een controlpanel? Zo ja, welke?

Ik gebruik de customapache van DirectAdmin.

jinxedworld
19/12/05, 12:22
Op welk OS?

petert101
19/12/05, 12:34
Origineel geplaatst door WH-Tim


Ik gebruik de customapache van DirectAdmin.

Hierboven is toch al een mooie oplossing gegeven, waarom gebruik je die suggestie niet?
Heel werkbaar hoor, alles in een(1) logfile en dan via cron af en toe splitten.
(zelf draai ik wel eens twee 'separate servers' in zo'n geval. Dus twee instanties van apache met twee verschillende conf files).

sander
19/12/05, 12:38
of verander in :

/usr/include/bits/typesizes.h
helemaal onderaan.

/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 4096

NetOne.nl
20/12/05, 08:39
Origineel geplaatst door jinxedworld
In dit geval moet je apache recompilen met een hogere fs.file-max. Gebruik je een controlpanel? Zo ja, welke?

Moet je dat dan ook niet ff in de kernel aanpassen dan (de fs_file-max)? Ik weet dat voor bijvoorbeeld de Oracle producten dit een vereiste is omdat die ook met veel bestanden tegelijk werken.

jinxedworld
20/12/05, 09:15
Ja klopt, voor mijn debianbak moet ik het volgende doen (misschien kunnen anderen dit als leidraad gebruiken):

Voeg de volgende regel toe aan /etc/sysctl.conf :
fs.file-max = 65536

Geef de volgende opdracht:

# /sbin/sysctl -w fs.file-max=65536

Voeg de volgden regel aan het begin van /etc/init.d/apache2 en
/usr/sbin/apache2ctl toe:


ulimit -n `cat /proc/sys/fs/file-max`

Wijzig de __FD_SETSIZE waarde in:


/usr/include/bits/typesizes.h
/usr/include/nptl/bits/typesizes.h

Dit zou moeten zijn:


#define __FD_SETSIZE 65536


Download, rebuild en installeer pakketten:


# apt-get install apt-src
# apt-src --build install openssl
# dpkg -i libssl*.deb openssl*.deb
# apt-src --build install apache2
# dpkg -i libapr*.deb apache2_*.deb apache2-common*.deb apache2-mpm-prefork*.deb apache2-utils*.deb
# cp /opt/psa/suexec/psa-suexec2 /usr/lib/apache2/suexec2
# /etc/init.d/apache2 restart
# apt-src --build install libc-client2002edebian
# dpkg -i libc-client-dev_2002edebian1-*.deb libc-client2002edebian*.deb mlock*.deb
# apt-src --build install php4
# dpkg -i `ls *deb|grep php4|grep -v apache-mod`

Met dank aan de FAQ van SW soft. Met een beetje gespijker kan je dit ook toepassen op je RPM-based bakje (rpmbuild).

Wido
20/12/05, 10:47
Wij hebben een vhosts.conf voor Apache van 2MB+ en deze loopt gewoon probleemloos.

Wij hebben echter mod_log_sql voor het loggen ipv plain-text files.