Apache som proxy-server

Apache kan bruges til mange ting – alt fra en enkel server, som sender
statiske websider, til avanceret filserver, som del 5 i denne serie
viste. I denne artikel vil du se, hvordan du kan bruge Apache som en
proxy-server.

Artikel top billede

(Foto: Computerworld)

Af Kenneth Geisshirt, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Som en del af Apache findes der to familier eller typer af proxy-servere. Den første type benævnes forward proxy. Det er den mest almindelige type proxy. I stedet for din web-browser (eller klient) sender forespørgsler direkte til en web-server, sendes de til proxy-serveren, som så sender dem videre til web-serveren.

Svarene på forespørgslerne sendes først til proxy-serveren, som så sender dem videre tilbage til klienterne. Du kender måske forward proxy, idet denne type ofte bruges i større virksomheder til at styre medarbejdernes adgang til internettet. Eftersom det er den mest almindelige type, dropper man ofte forward og taler kun om proxy-serveren. Det er også denne type proxy, som du kan sætte op i din web-browser.

Den anden type omtales som reverse proxy. Din web-browser ser en reverse proxy, som om det er den rigtige web-server, og du skal ikke sætte noget op for at bruge denne type. Men proxy-serveren sender forespørgsler videre til web-serveren. Eller som det ofte er tilfældet – til en samling web-servere. Men klienterne ved ikke, om der er en eller 1000 web-servere, da de kun ser proxy-serveren. Der er mange fordele ved reverse proxy, for eksempel kan du filtrere forespørgslerne, inden de når ind til web-serveren.

Modulerne

Apache har et generelt proxy-modul, som hedder mod_proxy. Ud over det generelle modul findes der moduler for en lang række protokoller, herunder http og ftp. For hver protokol, du ønsker, Apache skal være proxy for, skal du slå passende modulerne til.
Heldigvis følger proxy-modulerne automatisk med Apache, så du behøver ikke at installere noget, når du først har fået installeret Apache. En anden familie moduler er mod_cache. Disse moduler bruges ofte sammen med proxy-modulerne.

Modulerne bruges til at cache svarene på forespørgsler. Det er muligt at bruge harddisk (mod_disk_cache) eller hukommelse (mod_mem_cache) til cache. Naturligvis er hukommelse hurtigere, men du har meget mindre af den. Også mod_cache-familien følger umiddelbart med Apache, og du skal blot slå modulerne til ved hjælp af a2enmod-kommandoen.

Forward proxy med cache

En forward proxy i kombination med caching kan være yderst nyttig i situationer, hvor mange brugere ønsker at se de samme web-sider. Ved at cache siderne kan du spare store mængder internet-trafik, og brugerne vil opleve internetforbindelsen meget bedre, end den i virkeligheden er. Som it-ansvarlig kan du med andre ord både spare penge og stå på god fod med dine brugere. Det er ikke ualmindeligt, at visse web-sites er meget populære, for eksempel er http://dr.dk/ og http://eb.dk/ utroligt populære i Danmark – mange af dine brugere vil gå ind på dem i løbet af dagen.

Inden du fortsætter med proxy-serveren, skal du gøre klar til en disk-baseret cache. Alle direktiverne begynder med Cache. Udover, at modulet skal slås til, skal det aktiveres i Apaches konfigurationsfil. Det gør du med Cache­Enable-direktivet. Direktivet bruger to værdier til aktiveringen. Den første værdi angiver, om der er tale om en cache-baseret på hukommelse (værdien mem) eller harddisk (værdien disk). Den anden værdi angiver, hvilke url’er som skal caches.

Du kan fange alle url’er ved at bruge værdien / (divisionstegn). Du kan også nøjes med at cache for http://www.altomdata.dk/ ved at skrive denne url. Du skal angive, hvor modulet skal gemme cachen ved hjælp af direktivet CacheRoot med stien på en folder som værdi. Endvidere kan du angive, hvor dyb cachen skal være (antal underfoldere) med direktivet CacheDirLevels, og med direktivet CacheDirLength kan du angive, hvor lange navnene på underfolderne skal være.

De sidste to direktiver er ikke nødvendige at angive, da der er gode default-værdier. Med direktiverne CacheMinFileSize og CacheMaxFileSize kan du angive hen-holdsvis minimum- og maksimum-størrelse på filer, som skal caches. I boksen »Caching« finder du et eksempel på, hvordan du kan sætte en disk-baseret cache op.

Mere om samme emne

Læses lige nu

    Navnenyt fra it-Danmark

    Netip A/S har pr. 15. september 2025 ansat Jimmi Overgaard som Key Account Manager ved netIP's kontor i Viborg. Han kommer fra en stilling som Sales Executive hos Globalconnect A/S. Nyt job

    Jimmi Overgaard

    Netip A/S

    Enterprise Rent-A-Car har pr. 1. september 2025 ansat Christian Kamper Garst som Senior Key Account Manager. Han skal især beskæftige sig med at vinde markedsandele i hele Norden som led i en storstilet turnaround-strategi. Han kommer fra en stilling som Salgsdirektør hos Brøchner Hotels. Nyt job

    Christian Kamper Garst

    Enterprise Rent-A-Car

    Netip A/S har pr. 19. august 2025 ansat Jacob Vildbæk Jensen som Datateknikerelev ved afd. Herning og afd. Rødekro. Han har tidligere beskæftiget sig med tjenerfaget,. Nyt job
    Netip A/S har pr. 19. august 2025 ansat Carl Severin Degn Nørlyng som IT-Supporterelev ved afd. Thisted og afd. Herlev. Nyt job