Skip to content

Webbservrar

Hanterade Webbservrar kör Nginx eller Apache åt dig — plattformen etablerar VM:en, installerar och konfigurerar webbservern (valfritt med PHP), binder dina domäner, distribuerar ditt innehåll och kan publicera webbplatsen på internet vid behov.

Skapa en webbserver

I portalen går du till Webbservrar → Instanser → Skapa och väljer:

  • Motor — Nginx eller Apache, och en version (de startbara versionerna finns i rullgardinsmenyn; den rekommenderade är markerad).
  • Flavor — storleken, från familjen web.gp1.* (microxlarge).
  • Lagring — diskstorlek för dokumentroten.
  • VPC + subnät.
  • PHP — aktivera valfritt PHP och välj en version (8.1 / 8.2 / 8.3).

Från CLI:et

Livscykelkommandon är motorspecifika (fm webserver nginx … / fm webserver apache …).

bash
fm webserver nginx instance create \
  --name site-1 \
  --version 1.30 \
  --flavor web.gp1.small \
  --storage 20 \
  --vpc my-vpc \
  --subnet my-subnet \
  --php-enabled --php-version 8.3

# Apache är symmetriskt: fm webserver apache instance create …

Med Terraform

hcl
resource "frostmoln_nginx_instance" "site" {
  name        = "site-1"
  version     = "1.30"
  flavor_id   = "web.gp1.small"
  storage_gb  = 20
  vpc_id      = frostmoln_vpc.main.id
  subnet_id   = frostmoln_subnet.main.id
  php_enabled = true
  php_version = "8.3"
}

(frostmoln_apache_instance är Apache-motsvarigheten.)

PHP är låst under instansens livstid

Att aktivera PHP eller byta PHP-version kräver att instansen återskapas — det kan inte slås på för en körande webbserver. Välj den version du behöver redan vid skapandet.

Distribuera innehåll

Publicera din webbplats genom att ladda upp ett .tar.gz-arkiv av din dokumentrot. Plattformen packar upp det i en ny release-katalog och byter atomiskt den aktiva symboliska länken till den, så att övergången blir omedelbar och den föregående releasen behålls för återställning.

I portalen öppnar du webbserverns detaljsida och använder fliken Deploy för att ladda upp ett arkiv; distributionshistoriken listas där.

Från CLI:et

bash
# Distribuera ett arkiv till en instans
fm webserver nginx deploy <instance-id> ./site.tar.gz

# Lista tidigare distributioner (nyast först)
fm webserver nginx deploys list <instance-id>

# Apache: fm webserver apache deploy … / fm webserver apache deploys list …

Med Terraform

hcl
resource "frostmoln_webserver_deployment" "site" {
  instance_id    = frostmoln_nginx_instance.site.id
  source_archive = "${path.module}/site.tar.gz"
}

Terraform spårar arkivets innehållshash — bygg om site.tar.gz så distribuerar nästa terraform apply automatiskt en ny release.

Motorkonfiguration

En liten, kurerad uppsättning motorinställningar kan justeras utan att röra rå Nginx-/Apache-konfiguration. Nycklarna är desamma för båda motorerna:

NyckelVad den styr
indexFilesIndexfilnamn som prövas för en katalogbegäran (t.ex. index.html index.php)
spaFallbackServera index.html för omatchade rutter (single-page-app-fallback)
clientMaxBodySizeMaximal storlek på begäran/uppladdning (t.ex. 25m)
gzipAktivera gzip-komprimering av svar
securityHeadersSkicka en grunduppsättning säkerhetssvarshuvuden
error404PageSökväg till en anpassad 404-sida
error500PageSökväg till en anpassad 500-sida

I portalen använder du fliken Config på webbserverns detaljsida.

Från CLI:et

bash
# Visa den aktuella konfigurationen
fm webserver nginx config get <instance-id>

# Sätt ett värde
fm webserver nginx config set <instance-id> spaFallback=true
fm webserver nginx config set <instance-id> clientMaxBodySize=25m

Med Terraform

Sätt config-mappen på instansresursen:

hcl
resource "frostmoln_nginx_instance" "site" {
  # … skapandeargument enligt ovan …

  config = {
    indexFiles        = "index.html index.htm"
    spaFallback       = "true"
    clientMaxBodySize = "25m"
    gzip              = "true"
    securityHeaders   = "true"
  }
}

Domäner

Bind en eller flera domäner till en körande webbserver. Bindningen är en notering hos plattformen: servern svarar på vilket värdnamn som helst som pekas mot dess IP, så det är DNS som gör en domän live — bindningen markerar vilka domäner du betraktar som dina och vilken som är standard.

bash
fm webserver nginx domain add <instance-id> --name example.com

HTTPS termineras inte åt dig ännu

Plattformen utfärdar och förnyar inte certifikat för en bunden domän. TLS-flaggan på bindningen — och TLS-reglaget och den gröna Enabled-märkningen på instansen i portalen — registrerar bara din avsikt: inget certifikat tillhandahålls, ingenting lyssnar på 443, och webbplatsen serveras över HTTP. Terminera TLS framför webbservern själv om du behöver HTTPS i dag.

(Eller Terraform-resursen frostmoln_webserver_domain.) Peka din domäns DNS mot serverns publika IP (se nedan) och markera en domän som standard.

Publicera på internet

En hanterad webbserver är privat som standard — den får en privat IP och är endast nåbar från instanser i samma VPC. För att servera den på det publika internet, exponera den: plattformen allokerar en publik IP, associerar den med servern, och instansen visar sedan en publik IP.

I portalen använder du åtgärden Expose på instansen.

Från CLI:et

bash
fm webserver nginx expose <instance-id>     # allokera + koppla en publik IP
fm webserver nginx unexpose <instance-id>   # frigör den (tillbaka till privat)

Med Terraform

hcl
resource "frostmoln_nginx_instance" "site" {
  # … skapandeargument enligt ovan …
  public = true
}

Exponering allokerar en debiterad publik IP

Exponering allokerar en publik IP, som debiteras så länge den innehas. Att avexponera servern — eller ta bort den — frigör den publik IP:n.

Livscykel och begränsningar

  • Starta, stoppa, starta om, ändra storlek (utöka lagring) och ta bort från instansens detaljsida eller via CLI:et (fm webserver nginx instance start|stop|restart|resize|delete).
  • PHP är låst efter skapandet — återskapa instansen för att ändra det.
  • Återställning — den föregående releasen behålls efter varje distribution.
  • Ingen inbyggd lastbalansering eller autoskalning mellan webbserverinstanser (placera en lastbalanserare framför för det).

Relaterat