Översikt
Tredje kursveckan! Vi närmar oss mer och mer huvuddelarna för kursen. Denna vecka fokuserar vi på webbservern!
Händer i veckan
Section titled “Händer i veckan”Denna vecka sätter du en reverse proxy framför din containeriserade applikation, först på din egen dator och sedan på din egen server på Cumulus.
- Webbservrar och reverse proxy förklarar vad en webbserver och en reverse proxy gör, hur HTTPS och certifikat fungerar och hur du konfigurerar Caddy, med övningar.
- Din server på Cumulus visar hur du skapar din server och driftsätter applikationen på den.
“Stå-upp”-vlogg
Section titled ““Stå-upp”-vlogg”Föregående års “stå-upp”-vlogg för er som vill ha en introduktion till kursveckan.
Den här inspelningen är delad mellan de två kurserna: första delen handlar om 1DV025, andra delen — den som sammanfattas här — om 1DV026:s tredje kursvecka.
Från Bash till webbservern
Section titled “Från Bash till webbservern”Förra veckan handlade om grundläggande Bash-kommandon, och de blir ännu mer aktuella den här veckan. I slutet av förra veckan fick alla som läser kursen ett eget Secrets-projekt i GitLab. Det innehåller hemlig, personlig information om hur man ansluter till sin egen server, så visa det aldrig för någon annan.
Veckans fokus är webbservern och vilken roll den spelar. Kursledningen betonar att det tar tid att bygga upp en mental bild av var koden exekveras — på klienten eller på servern — och att det lönar sig att göra det. Föreläsningen om webbservrar är lång (ungefär 1 h 20 min) och spänner över allt från vad en server är till reverse proxy, lastbalanserare och virtual hosts.
Din egen server i molnet
Section titled “Din egen server i molnet”Varje student får en egen virtuell maskin i molnet. Det finns bara ett terminalgränssnitt, inget grafiskt gränssnitt, och maskinen kör Ubuntu. Den som redan har arbetat igenom förra veckans Docker-övning är bättre förberedd för vad som händer vid inloggningen.
Anslutningen sker med SSH, och av säkerhetsskäl bara via VPN. Maskinerna ligger bakom en brandvägg. VPN:en administreras av centrala IT, inte av kursen, så följ deras instruktioner för din plattform. Sitter man i universitetets lokaler behövs ingen VPN, men alla — även campusstudenter som jobbar hemifrån — bör installera den. Ett vanligt skäl till att anslutningen misslyckas är att man har glömt att starta VPN:en.
Guiden och övningen
Section titled “Guiden och övningen”Veckans övning går ut på att få en publik “Hello World!” att fungera på den egna servern. Ha guiden öppen vid sidan av, eftersom den svarar på nästan alla frågor som dyker upp. Följ stegen till punkt och pricka. Under veckan blir man systemadministratör på en Unix-maskin:
- nginx installeras och fungerar som webbserver.
- HTTPS ska alltid användas mot servern.
- HTTP/2 konfigureras i nginx.
- PM2 är en processhanterare som håller applikationer igång på servern och startar om dem om de kraschar.
Filer överförs manuellt i den här kursen, till exempel med FileZilla, VS Code Remote SSH eller
scp/rsync. Att hämta koden från ett git-repo och driftsätta den med pipelines hör till en
senare kurs.
Övrigt denna vecka
Section titled “Övrigt denna vecka”Det finns inga läsanvisningar den här veckan, bara inspelningarna och guiderna. Den som har gått igenom föreläsningen, guiden och övningen har gjort veckans arbete. Vid inspelningstillfället var det också aktivitetskontroll i kursvecka 3: man skulle anmäla sig till en grupp i Moodle före fredag. Veckan förbereder för det som kommer senare i kursen: webbapplikationer som inte bara körs lokalt utan driftsätts på en maskin i molnet.
Stödjande inspelningar
Section titled “Stödjande inspelningar”Webbservrar
Section titled “Webbservrar”- Introduktion
- Vad är en server
- Vad är en webbserver
- Olika webbservrar
- Multitrådad webbserverarkitetur
- Singeltrådad webbserveraktitektur
- Singeltrådad vs. multitrådad
- Microsoft IIS
- Apache
- Node.js web server
- Nginx
- Andra typer av servrar
- Reverse Proxy
- Lastbalanserare
- Applikationsservrar
- Virtual Hosts
- Översiktsbild
- Hur ska vi jobba i kursen?
Övningar
Section titled “Övningar”Under Övningsuppgifter hittar du övningsuppgifter som det är lämpligt att du arbetar med under veckan. Försök att göra så många som möjligt!
Guider
Section titled “Guider”Denna vecka skapar du din server på Cumulus, där du kommer att driftsätta dina examinationsuppgifter för delkurs B. Guiden Din server på Cumulus visar hur det går till.
Utmaningar
Section titled “Utmaningar”Även denna vecka finns ett antal utmaningar att lösa för att hjälpa dig i din lärprocess. Lägg lite tid på att läsa igenom dem.
Handledning
Section titled “Handledning”Skicka gärna in frågor på förhand via vårt formulär som du når här:
Studiefrågor
Section titled “Studiefrågor”Här är ett antal frågor som du kan försöka besvara och diskutera tillsammans med din Ai-kompis. Tveka inte att lyfta någon av frågorna till handledningen för att fortsätta diskussionen med lärare och studiekamrater.
Frågor att diskutera med din Ai-kompis
- Vad är skillnaden mellan en reverse proxy och en forward proxy?
- Varför släpper man inte en Express-applikation direkt mot internet, utan har en reverse proxy framför?
- Vad skiljer Caddy, nginx och Apache åt, och varför väljer olika projekt olika webbservrar?
- Hur fungerar ACME, och vad bevisar servern när den begär ett certifikat?
- Vad händer om en applikation bakom en reverse proxy litar på
X-Forwarded-Forutan att vara bakom en proxy? - Förr användes processhanterare som PM2 för att hålla Node-applikationer igång. Vad gör Docker i stället, och vad finns det kvar för skäl att använda PM2?
Här följer tips till hur du kan prioritera bland kursmaterialet för att komma igång med veckan.
- Gör övningen Containerisera en webbapplikation om du inte redan har gjort den.
- Läs Webbservrar och reverse proxy och gör övningarna.
- Följ guiden Din server på Cumulus.