Levering af statisk indhold med Nginx
Konfigurér Nginx til effektiv levering af statiske filer og aktiver, og optimér ydeevnen for webapplikationer.
Levering af statisk indhold med Nginx er en gratis API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset indeholder 4 lektioner i alt.
Hvad er statisk indhold?
Når du besøger et websted, ser du ofte en blanding af indhold. Noget af det ændrer sig ofte (f.eks. nyhedsfeeds), mens andet forbliver det samme.
Statisk indhold er filer, der leveres til brugeren præcis, som de er gemt. De ændrer sig ikke afhængigt af, hvem der ser dem, eller hvornår de ses.
- HTML-filer: Strukturen på dine websider.
- CSS-filer: Typografi og visuel præsentation.
- JavaScript-filer: Interaktive elementer og logik på klientsiden.
- Billeder: JPG, PNG, GIF, SVG.
- Skrifttyper: Webskrifttyper som TTF og WOFF.
Nginx er særdeles effektiv til at levere disse statiske filer.
Angivelse af grundmappen
For at fortælle Nginx, hvor den skal finde dine statiske filer, bruger du direktivet root. Det angiver grundmappen for indholdet på dit websted.
Når Nginx modtager en forespørgsel, føjer den den ønskede URI til stien i root for at finde filen.
http {
server {
listen 80;
server_name example.com;
root /var/www/mywebsite; # Nginx looks for files here
}
}Location-blokke til stier
location-blokken er afgørende for at angive, hvordan Nginx skal håndtere forskellige typer forespørgsler ud fra deres URL-sti.
Du kan definere specifikke regler for forespørgsler til / (roden af dit websted), /images/, /css/ eller en hvilken som helst anden sti.
server {
# ...
root /var/www/mywebsite;
location / {
# Rules for requests to the root path
}
location /images/ {
# Rules for requests to /images/...
}
}Levering af en grundlæggende HTML-side
Lad os kombinere root og location / for at levere en enkel HTML-side. Nginx leder som standard efter index.html, hvis du inkluderer direktivet index.
Hvis der kommer en forespørgsel til http://localhost/, forsøger Nginx at finde /usr/share/nginx/html/index.html.
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location / {
index index.html index.htm; # Try to serve index.html or index.htm
}
}Håndtering af CSS og JavaScript
Du har ikke altid brug for separate location-blokke til hver filtype. Hvis direktivet root er indstillet korrekt, leverer Nginx filer som /css/style.css eller /js/app.js direkte.
Du kan dog bruge specifikke location-blokke til detaljeret styring, f.eks. til at anvende bestemte regler for mellemlagring på bestemte filtyper.
server {
listen 80;
server_name myapp.com;
root /var/www/myapp/public;
location / {
index index.html;
}
location ~* \.(css|js)$ {
# This matches .css or .js files
# Could add specific headers or caching here
add_header X-Content-Type-Options nosniff;
}
}Direktivet 'index'
Direktivet index fortæller Nginx, hvilke filer den skal lede efter, når der anmodes om en mappe og ikke om en bestemt fil.
Hvis en bruger f.eks. anmoder om http://example.com/blog/, leder Nginx først efter index.html i mappen blog. Hvis filen ikke findes, prøver den index.php og så videre.
server {
# ...
root /var/www/mywebsite;
location / {
index index.html index.php default.html; # Order matters!
}
}Forståelse af MIME-typer
MIME-typer (Multipurpose Internet Mail Extensions) er mærkater, der identificerer, hvilken type indhold en fil indeholder, f.eks. text/html for HTML-dokumenter eller image/jpeg for JPEG-billeder.
Når Nginx leverer en fil, sender den en HTTP-header med navnet Content-Type og den relevante MIME-type. Det fortæller browseren, hvordan filen skal fortolkes.
Nginx har normalt en indbygget fil med navnet mime.types, der knytter filendelser til deres korrekte MIME-typer, så du sjældent behøver at konfigurere dette manuelt for almindelige statiske filer.
Mellemlagring for bedre ydeevne
For at optimere ydeevnen kan Nginx instruere browsere og proxyservere i at gemme statiske filer i en cache. Det betyder, at tilbagevendende besøgende ikke behøver at hente de samme filer igen.
Direktivet expires angiver HTTP-headerne Expires og Cache-Control og fortæller klienterne, hvor længe de må gemme en fil, før de skal anmode om den igen.
server {
# ...
location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ {
expires 30d; # Cache these files for 30 days
add_header Cache-Control "public, no-transform";
}
location ~* \.html$ {
expires 1h; # HTML files might change more often, cache for 1 hour
add_header Cache-Control "public, no-transform";
}
}Hurtigt tjek: Statisk indhold
Se på følgende konfigurationsudsnit fra Nginx:
server {
listen 80;
server_name example.com;
root /var/www/myproject/public;
location / {
index index.html;
}
location /assets/ {
expires 7d;
}
}Hvis der kommer en forespørgsel til http://example.com/assets/image.png, hvor leder Nginx så efter filen image.png?
Opsummering og næste trin
Godt klaret! Du har lært det grundlæggende i at levere statisk indhold med Nginx.
- Direktivet
rootdefinerer grundmappen for dine filer. location-blokke hjælper dig med at anvende specifikke regler ud fra URL'en i forespørgslen.- Direktivet
indexangiver standardfiler for forespørgsler til mapper. - Nginx håndterer automatisk MIME-typer for de fleste filer.
- Brug af direktivet
expiresforbedrer ydeevnen ved at aktivere caching i browseren.
Effektiv levering af statisk indhold er en af Nginx' centrale styrker og gør dine webapplikationer hurtigere og mere reaktionsvillige. I de kommende lektioner går vi videre til mere komplekse Nginx-konfigurationer!
Lær API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Levering af statisk indhold med Nginx” gratis?
Ja — hele teksten til “Levering af statisk indhold med Nginx” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset, skal du opgradere til CoddyKit PRO. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Levering af statisk indhold med Nginx”?
Konfigurér Nginx til effektiv levering af statiske filer og aktiver, og optimér ydeevnen for webapplikationer. Du øver dig i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)?
Der kræves ingen tidligere erfaring. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Levering af statisk indhold med Nginx”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektion?
Ja. Alle API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Installation og opsætning af Nginx
- Grundlæggende Nginx-konfiguration
- Levering af statisk indhold med Nginx
- Nginx location-blokke og matchning af anmodninger