Installere Apache HTTP Server med en Quick-Start Config

Forfatter WaziJune 24, 2009, 9:04 scanneren † ¬ † Denne artikkelen ble opprettet fordi jeg har fått et spørsmål eller to om hvordan du Hvordan installere Apache HTTP Server. I denne artikkelen, antar jeg at du har Red Hat /CentOS Linux med en skikkelig bygge miljøet oppsett. Hvis du ikke har gcc installert, kan du få dette med alle de nødvendige pakkene som dette:

 yum groupinstall, ÄúDevelopment Libraries,Äù 

Du skal nå være klar til å installere Apache

Kjøtt og poteter

Når jeg installere en Apache HTTP Server for en klient eller meg selv, liten eller stor Jeg følger en, Äústandard,Äù konfigurasjon oppsett som er veldig lett å bygge på senere. For det meste bruker jeg CentOS eller Redhat Enterprise Edition servere, men disse trinnene skal fungere på alle Unix-system. Dette kan ikke være sant for AIX som krever litt mer hånd-holding å sørge for at kompilatoren er riktig installert.

innholdet i denne artikkelen

Last ned kildekoden fra Apache prosjektets hjemmeside. (Foreløpig 2.2.11)

Kjør konfigurere, lage og make install installasjonstrinn. (Med noen få tilpasset brytere)

Setup httpd.conf og tilknyttede filer

Start nybygde Apache server

Ferdig!

Last ned Apache

Første trinn er å laste ned Apache kildekoden og ikke binærfiler eller turtall. Jeg tror at det å bruke kildekoden vil gi de beste resultater mest fleksible installasjon av Apache. Hvis du følger noen skritt selve, Äúinstallation,Äù prosedyren er ikke vanskelig, og det vil gi deg et godt grunnlag for å legge til /fjerne funksjoner senere.

Gå til denne url http://httpd.apache.org /download.cgi og få siste tgz eller bz2 fil, for tiden 2.2.11.

Kompilering /Installere Source for Apache

Jeg liker å holde min kilde nedlasting i ~ /Programvare /så at jeg kan gå tilbake og bare re-kompilere og re-installere binærfiler hvis jeg må legge til en modul eller to.

 [root @ coco ~] # cd ~ /Programvare /httpd-2.2.11 [ ,,,0],root @ coco httpd-2.2.11] # "./configure" \\ "- enable-ssl" \\ "- enable-proxy" \\ "- enable-proxy-balancer" \\ "- enable-omskrive" \\ "enable-headers" \\ "- enable-deflate" \\ "- enable-cache" \\ "- enable-utløper" \\ "- enable-mem-cache" \\ "- enable-disk-cache "\\" - enable-fil-cache "\\" - med-MPM = worker "\\" - deaktiver-cgi --disable-asis "\\" - deaktiver-automatiske indeksen "\\" - deaktiver-UserDir " 

La meg forklare:.

enable-ssl Dette er slik at du kan aktivere en sikker port senere

enable-proxy /enable-proxy-balancer Dette er her for å sette opp en tilkobling til en backend-server som Tomcat /Thin /kjøter

enable-omskriving Vi er alltid kommer til å trenge omskrive reglene i konfigurasjonsfilen.

enable-overskrifter trenger dette for å aktivere overvåking av serveren, og for mod_proxy trenger vi å manipulere spissen.

enable-deflatere Den gamle gzip modul som vil tillate oss å sette opp noe innhold å bli komprimert med gzip

enable-cache /utløper /med- cache /disk-cache /fil-cache er alle der, slik at vi kan aktivere utløper modulen.

med-mpm = arbeidstaker I,Äôm velger å bruke arbeideren MPM som standard min siden de fleste server jeg jobber med har mer enn en prosessor. Hvis du jobber på servere som bare har én cpu bruke prefork MPM.

[root @ coco httpd-2.2.11] # gjør &&make install

Du vil nå ha apache serveren installert i /usr /local /apache2, er dette standard install, og hvis du ønsker å endre dette må du legge til, Äìprefix = /min /katalog /apache2 bryteren til konfigurere streng og gjøre &&make install for å installere apache til riktig katalog.

Apache Startup Script

Den enkleste og raskeste måten er å kopiere /usr /local /apache2 /bin /apachectl å /etc/init.d/apache dette vil tillate du todo /etc/init.d/apache starte | stoppe | restart

Hvis du vil ha et skript som har flere tilbakemeldinger kan du bruke følgende skript:.!

 # /bin /bash # httpd¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † oppstartsskript for Apache HTTP Server # chkconfig: 2345 85 15 # beskrivelse: Apache er en World Wide Web server.¬ † Den brukes til å tjene \\ # ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † HTML-filer og CGI # processname. httpd # config: /usr/local/apache2/conf/httpd.conf# pidfile: /var/run/apache2.pid# Source funksjon bibliotek .. /etc/rc.d/init.d/functions# Begynn httpd i C locale av default.HTTPD_LANG = $ {HTTPD_LANG- "C"} # Dette vil hindre initlog svelge opp en passfrase teksten hvis # mod_ssl trenger en passfrase fra user.INITLOG_ARGS = "" # Sti til apachectl script, server binære, og short-skjema for messages.apachectl=/usr/local/apache2/bin/apachectlhttpd=${HTTPD-/usr/local/apache2/bin/httpd}prog=httpdpidfile=${PIDFILE-/var/run/apache2.pid}lockfile=${LOCKFILE-/var/lock/subsys/apache2}RETVAL=0start() {Echo -n $ "Starte $ prog:" LANG = $ HTTPD_LANG daemon $ httpd $ ALTERNATIVER RETVAL = $? echo [$ RETVAL = 0] &&berørings $ {låsefil} retur $ RETVAL} stop () {echo -n $ "Stoppe $ prog:" killproc $ httpd RETVAL = $? echo [$ RETVAL = 0] &&rm -f $ {låsefil} $ {pidfile}} reload () {echo -n $ "Oppgradere $ prog:" hvis! LANG = $ HTTPD_LANG $ httpd $ ALTERNATIVER -t > &/dev /null; deretter RETVAL = $? echo $ "ikke omlasting grunn konfigurasjon syntax error" failure $ "ikke omlasting $ httpd grunn konfigurasjon syntax error" annet killproc $ httpd HUP RETVAL = $? fi ekko} # Se hvordan vi ble called.case "$ 1" i starten) starte;; stopp) stoppe;; status) status $ httpd RETVAL = $?;; omstart) stoppe starte;; condrestart) hvis [-f $ {pidfile}]; deretter stoppe starte fi;; reload) reload;; grasiøs | Hjelp | configtest | fullstatus) $ apachectl $ @ RETVAL = $?;; *) Echo $ "Bruk: $ prog {start | stop | restart | condrestart | reload | status | fullstatus | grasiøs | Hjelp | configtest}« exit 1esacexit $ RETVAL 
Apache Configuration File

Jeg vil trappe gjennom de forskjellige delene av hovedkonfigurasjonsfilen som jeg bruker som mal for mine Apache-servere.

 # ======================= ========================== # Grunnleggende innstillinger # ==================== ============================= Server% {SERVER_NAME} Serverroot "/usr /local /apache2" PidFile "/var /run /apache2.pid "# ============================================= ==== # Ytelses innstillinger # ========================================== ======= Timeout 30KeepAlive OnMaxKeepAliveRequests 500KeepAliveTimeout 2 < IfModule mpm_prefork_module > StartServers¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † en MinSpareServers¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † en MaxSpareServers¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † 10 MaxClients¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † 25 MaxRequestsPerChild¬ † ¬ † ¬ † ¬ † 1000 < /IfModule > < IfModule mpm_worker_module > ServerLimit¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † 16 StartServers¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † 2 MaxClients¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † 40 MinSpareThreads¬ † ¬ † ¬ † ¬ † ¬ † ¬ † 5 MaxSpareThreads¬ † ¬ † ¬ † ¬ † ¬ † 20 ThreadsPerChild¬ † ¬ † ¬ † ¬ † ¬ † 20 MaxRequestsPerChild¬ † ¬ † 5000 < /IfModule > 

Basic delen er bare der for Apache rotkatalogen. Deretter har vi en Timeout på 30 sekunder som er nok for de fleste oppsett standard på 300 er altfor lang. Vi gjør det mulig Keepalive MEN Keepalive timeout er bare 2 sekunder som lar hver bruker for å få sin egen tilkobling, men tilkoblingen lukkes så snart de laste ned siden de ba om (Du kan spille med denne timeout og har det satt et eller annet sted i 1- 5 sek range). Så jeg setup perfork og arbeidstaker avhengig av antall CPUer som er installert på Apache-serveren.

 # ======================= ========================== # Generelle innstillinger # ==================== ============================= Lytt 80 # Lytt 443User wwwGroup wwwServerAdmin Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se UseCanonicalName OffServerTokens ProdServerSignature OffHostnameLookups OffExtendedStatus På # ==================================== ============= # Moduler # ================================== =============== # LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so 

Neste deler vi lytter til port 80, men har også 443 hvis vi vil. (jeg vil vise deg senere hvordan sette opp en https /SSL /Secure virtuellverten) User og Group er www brukeren som er et system bruker. (På Redhat du lage et system bruker med bryteren -r. adduser -r www
). Vi ønsker ikke at serveren skal slå opp vertsnavn eller vise en signatur til våre brukere. Den ExtendedStatus er på for å overvåke reasons.The dummy modulen er der hvis vi ønsker å installere php senere nedover veien.

 # =================== ============================== # Adgangskontroll # ================ ================================= < Directory /> Alternativer FollowSymLinks AllowOverride Ingen Bestill benekte, tillate Nekt fra alle < /Directory > < DirectoryMatch > «^ /* /\\ svn /.."; Errordocument 403 /404.html Bestill tillate, nekte Nekt fra alle Tilfredsstille alle < /DirectoryMatch > < FilesMatch > «^ \\ ht."; Bestill tillate, nekte Nekt fra alle Tilfredsstille alle < /FilesMatch > # ==================================== ============= # MIME-koding # ================================= ================ DefaultType tekst /plainTypesConfig conf /mime.typesAddType application /x-komprimere .ZAddType application /x-gzip .gz .tgzAddType application /x-x509-ca-cert .crtAddType application /x-pkcs7-crl¬ † ¬ † ¬ † .crl 

Første ting først, Nekt fra alle. Dette gjør at vi har for å tillate tilgang til en katalog som blir anvendt i Apache-konfigurasjonen. Da sørger vi for at brukerne don,Äôt har tilgang til .svn kataloger eller .ht filer. Vi har også en minimal mimetype oppsett. (For de slippe ut luften og ssl moduler.)

 # ================================== =============== # Logger # ================================ ================= LogLevel warnLogFormat «% h% l% u% t \\"% r \\ "% > s% b \\"% {Referer} i \\ "\\ "% {User-Agent} i \\" "combinedErrorLog /usr /local /apache2 /logger /error_log # Marker forespørsler om robots.txt fileSetEnvIf Request_URI" ^ /roboter \\ .txt $ "dontlogSetEnvIf Request_URI« ^ \\ /monit \\ /token $ "dontlog # ============================================= ==== # SSL Configuration # ========================================== ======= SSLPassPhraseDialog¬ † builtinSSLSessionCache¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † shmcb: /usr /local /apache2 /logger /ssl_scache (512000) SSLSessionCacheTimeout¬ † 300SSLMutex¬ † file: /usr /local /apache2 /logger /ssl_mutexSSLRandomSeed oppstart builtinSSLRandomSeed koble innebygd 

Nå kan vi sette opp logformat for bruk i våre virtualhosts og server error loggfilen. Vi merker også to dontlog konvolutt som fjerner robot.txt og monit /token treff fra loggen. Når vi skapte virtuellverten vil jeg vise hvordan dette blir brukt. Vi har også sette opp en standard ssl konfigurasjon for serveren.

 # ================================ ================= # Mod status for overvåking # =========================== ====================== < virtuellverten 127.0.0.1:80> < Sted /server-status > SetHandler server-status Bestill Nekt, Tillat Nekt fra alle Tillat fra localhost Tillat fra 127.0.0.1 < /Location > < /virtuellverten > # ==================== ============================= # Inkluder ekstra configs # ================ ================================= Inkluder conf /ekstra /httpd-myblog.com.conf 

Nå server overvåking oppsett. Vi tillater kun tilgang fra localhost og det vil bare lytte til 127.0.0.1 ip. Dette er et godt oppsett for verktøy som Ground og Hyperic. Den siste linjen inneholder en virtuellverten konfigurasjonsfil. Nå kan du ta en titt på virtuellverten

Virtualhosts Ved hjelp av en Namebased Setup

Jeg liker å ha min httpd.conf med innstillinger og server-wide fri for faktiske innholdet hosting elementer eller mod_proxy /mod_jk konfigurasjoner . I dette eksempelet har jeg en blogg that,Äôs kjører på en Ruby on Rails backend med tre tynne (Thin er én RoR applikasjonsserver) servere lytter til havner 8000- 8002.

 # ------- ------------------------------------------------- # Hold alltid vert header # -------------------------------------------- ------------ ProxyPreserveHost På # ----------------------------------- --------------------- # Rails Cluster # ------------------------- ------------------------------- < Proxy balansering: //rails-cluster > BalancerMember http://127.0.0.1:8000 BalancerMember http://127.0.0.1:8001 BalancerMember http://127.0.0.1:8002</Proxy> 

Dette oppsettet har tre servere proxy_balancer klynge som du kan få tilgang til å bruke balansering:. //rails-cluster /akkurat som det var en server

 # ----------- --------------------------------------------- # name-baserte virtuelle hosting. # ----------------------------------------------- --------- Namevirtualhost *: 80 < virtuellverten *: 80 > Document "/var/www/myblog.com/current/public" Server www.myblog.com Server myblog.com # ------------------------ ------------------------- # omskrivingsregler # --------------------- ---------------------------- RewriteEngine på # Force www.myblog.com og sørge for at vi bruker en 301 HTTP kode for viderekobling. Dette er en SEO must. RewriteCond% {HTTP_HOST} ¬ † ¬ †! ^ Www \\ .myblog \\ .no [NC] RewriteCond% {HTTP_HOST} ¬ † ¬ † ^ $ RewriteRule ^ /(. *) ¬ † ¬ † ¬ † ¬ † ¬ †! ¬ † ¬ † ¬ † http://www.myblog.com/$1 [L, R = 301] # ------------------------- ------------------------------- # Liste over nettadresser ikke til proxy # ----------- --------------------------------------------- ProxyPass /system! ProxyPass /bilder! ProxyPass /stilark! ProxyPass /javascripts! ProxyPass /monit /token! # Send alt annet til proxy_balancer klynge av rails servere ProxyPass /balanserer: //rails-cluster /ProxyPassReverse /balanserer: //rails-cluster /< Directory "/var/www/myblog.com/current/public"> Alternativer FollowSymLinks AllowOverride Ingen Bestill tillate, nekte Tillate fra alle < /Directory > # Før du starter serveren du trenger for å lage loggene /myblog.com katalogen. # Vi er også å legge den dontlog miljøvariabelen her for å stoppe logging sett oppføringer. (Dette er konfigurert i httpd.conf) ErrorLog¬ † "logger /myblog.com /error_log" CustomLog "logger /myblog.com /access_log" kombinert env =! Dontlog # ------------ -------------------------------------------- # Deflate Modulkonfigurasjon # - -------------------------------------------------- ----- < IfModule deflate_module > AddOutputFilterByType deflatere text /plain AddOutputFilterByType deflatere text /xml AddOutputFilterByType deflatere application /xhtml + xml AddOutputFilterByType deflatere text /css AddOutputFilterByType deflatere application /xml AddOutputFilterByType deflatere image /svg + xml AddOutputFilterByType deflatere application /rss + xml AddOutputFilterByType deflatere application /atom_xml AddOutputFilterByType deflatere application /script AddOutputFilterByType deflatere application /x-javascript AddOutputFilterByType deflatere application /x-httpd-php AddOutputFilterByType deflatere application /x-httpd-fastphp AddOutputFilterByType deflatere application /x-httpd-eruby AddOutputFilterByType deflatere text /html BrowserMatch ^ Mozilla /4 gzip-bare-tekst /html BrowserMatch ^ Mozilla /4.0 [678] no-gzip < /IfModule > # ============================================= # Konfigurer utløper Module # ============================================= < IfModule mod_expires .c > ExpiresActive På ExpiresDefault "tilgang pluss 1 sekunder" ExpiresByType text /html "tilgang pluss 1 sekunder" ExpiresByType image /gif "tilgang pluss en uke" ExpiresByType image /jpeg "tilgang pluss en uke" ExpiresByType image /png "tilgang pluss en uke" ExpiresByType text /css "tilgang pluss en uke" ExpiresByType text /javascript "tilgang pluss en uke" ExpiresByType application /x-javascript "tilgang pluss en uke" ExpiresByType text /xml "tilgang pluss 1 sekunder" < /IfModule > < /virtuellverten > 

Her er det mye av informasjonen kan prøve å ta det steg for steg. Først vi sette opp en server med navnet www.myblog.com som også lytter til myblog.com men ved hjelp av mod_rewrite vi tvinge alle til å www.myblog.com med en 301-viderekobling. Så oppsettet vi alt av statisk innhold som vi ønsker Apache til serveren fra den lokale filsystem bruker ProxyPass med en! å si, audo ikke proxypass,Äù disse katalogene, og deretter sender vi alt annet til den balanserer klyngen. Vi setup tilgangsrettighetene til den statiske katalogen der innholdet vårt er lagret (bilder, javascript, opplastede filer og andre ting som css.) Nå har vi setup virtualhosts loggfil i sin egen katalog inne i logs. De mod_deflate og mod_expires konfigurasjoner fungere for de fleste oppsett, men dette stykket må overvåkes og innstilt til ditt oppsett. . Jeg har sett mod_expires oppsettet gir meg problemer ved hjelp av skinner og autentisering

Nå for til en secure.myblog.com virtuellverten

 < virtuellverten _default_: 443 > Document "/var/www/myblog.com/current/public" Server secure.myblog.com Server www.myblog.com myblog.com 
 RewriteCond% {HTTP_HOST} ¬ † ¬ †! ^ Sikre \\ .myblog \\. com [NC] RewriteCond% {HTTP_HOST} ¬ † ¬ † ^ $ RewriteRule ^ /(. *) ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † ¬ † https://secure.myblog.com/$1! [L, R = 301] # ------------------------------------------ -------------- # Liste over nettadresser ikke til proxy # ---------------------------- ---------------------------- ProxyPass /system! ProxyPass /bilder! ProxyPass /stilark! ProxyPass /javascripts! ProxyPass /balanserer: //rails-cluster /ProxyPassReverse /balanserer: //rails-cluster /ErrorLog¬ † "logger /myblog.com /error_log" CustomLog "logger /myblog.com /access_log" kombinert env = donlog # -! -------------------------------------------------- ---- # SSL-sertifikater # ------------------------------------------ -------------- SSLEngine på SSLCertificateFile¬ † ¬ † ¬ † /usr/local/apache2/ssl/secure.myblog.com.crt SSLCertificateKeyFile /usr /local /apache2 /ssl /secure .myblog.com.key # ------------------------------------------- ------------- # Deflate Modulkonfigurasjon # -------------------------------- ------------------------ < IfModule deflate_module > AddOutputFilterByType deflatere text /plain AddOutputFilterByType deflatere text /xml AddOutputFilterByType deflatere application /xhtml + xml AddOutputFilterByType deflatere text /css AddOutputFilterByType deflatere application /xml AddOutputFilterByType deflatere image /svg + xml AddOutputFilterByType deflatere application /rss + xml AddOutputFilterByType deflatere application /atom_xml AddOutputFilterByType deflatere application /script AddOutputFilterByType deflatere application /x-javascript AddOutputFilterByType deflatere application /x-httpd-php AddOutputFilterByType deflatere application /x-httpd-fastphp AddOutputFilterByType deflatere application /x-httpd-eruby AddOutputFilterByType deflatere text /html BrowserMatch ^ Mozilla /4 gzip-bare-tekst /html BrowserMatch ^ Mozilla /4.0 [678] no-gzip < /IfModule > # ============================================= # Konfigurer utløper Module # ============================================= < IfModule mod_expires .c > ExpiresActive På ExpiresDefault "tilgang pluss 1 sekunder" ExpiresByType text /html "tilgang pluss 1 sekunder" ExpiresByType image /gif "tilgang pluss en uke" ExpiresByType image /jpeg "tilgang pluss en uke" ExpiresByType image /png "tilgang pluss en uke" ExpiresByType text /css "tilgang pluss en uke" ExpiresByType text /javascript "tilgang pluss en uke" ExpiresByType application /x-javascript "tilgang pluss en uke" ExpiresByType text /xml "tilgang pluss 1 sekunder" < /IfModule > # ------------------------------------------------- ------- # Document root /# -------------------------------------- ------------------ < Directory "/var/www/myblog.com/current/public"> Alternativer FollowSymLinks AllowOverride Ingen Bestill tillate, nekte Tillate fra alle < /Directory > # ------------------------------------------------- # Fikse ennå abother IE 6 bug # ------------------------------------------ ------- BrowserMatch ". * MSIE. *" nokeepalive ssl-uren-shutdown nedgradering-1.0 kraft-respons-1.0 # -------------------- ----------------------------- # Legg dette til forespørselen header slik at # rails setter riktig redirect på plass # --- ---------------------------------------------- RequestHeader satt X_FORWARDED_PROTO ' https '< /virtuellverten > 

Dette er svært lik den port 80 virtuellverten med samme navn. den største forskjellen er SSL-sertifikater og deretter bunnen SSL /https innstillinger for å fikse problemer med Mongrel /rails og IE6. Du can,Äôt konfigurere mod_expires og mod_deflate i hovedkonfigurasjonsfilen og har virtuallhost inheret konfigurasjonen slik at den beste løsningen for å være tørr ville være å sette disse innstillingene i sin egen mod_deflate.conf og mod_expires.conf og deretter inkludere de navngitte konfigurasjonsfiler i hvert virtualhosts konfigurasjonsfil som så:

Ta conf /mod_deflate.conf Inkluder conf /mod_expires.conf

Finishing Up

Apache med mod_proxy bergarter. Det vi har her er Apache som er klar til å bli utvidet til en høy ytelse webserver eller proxy-server, eller begge deler. Jeg liker å starte med dette oppsettet og deretter bygge fra her, men hvis du hadde for å få flere samtidige klienter og gjennomstrømning gjennom Apache server jeg ville se på de tilgjengelige minne og CPU-sykluser og kanskje gjøre noe sånt som dette:

 < IfModule mpm_worker_module > ThreadLimit 100 StartServers 5 MaxClients 1000 MinSpareThreads 100 MaxSpareThreads 1000 ThreadsPerChild 100 MaxRequestsPerChild 0 < /IfModule > 

Dette er en høy tråder og lave prosesser oppsett og for å få antall prosesser som Apache vil bruke rett og slett dele MaxClients av ThreadPerChild. Så dette gir oss 10 prosesser hver med maksimalt 100 tråder, med maksimalt tusen kunder totalt. Avhengig av serveren og hvilken type innhold som du serverer du kan laste test og øke disse innstillingene hvis du trenger mer enn 1000 samtidige brukere.

I,Äôm en veldig stor fan av mod_proxy og jeg bruker mod_proxy_ajp inplace av mod_jk hver sjanse jeg får. (Jeg også snakke mine kunder til å bruke mod_proxy løpet mod_jk hvis de bruker Apache 2.2.x.)

Ved hjelp av dette oppsettet til å inkludere virtualhosts at serveren kjører jeg føler at det er enkelt å legge til /fjerne nye nettsteder til dette oppsettet og det gir meg også en god oversikt over hva som kjører på serveren.

Freddy AndersenFreddy støtter OpenLogic kunder fra sitt hjem i California. Født i Norge, har Freddy jobbet i åpen kildekode for nesten 10 år. Han kjører en Ferrari lastebil når han ikke er i gang (enten for trening eller jage Cade, hans to år gamle, eller rett og slett fordi han hadde for mye Red Bull).