Skip to content

Webservere

Administrerte webservere kjører Nginx eller Apache for deg — plattformen klargjør VM-en, installerer og konfigurerer webserveren (eventuelt med PHP), binder domenene dine, distribuerer innholdet ditt og kan publisere nettstedet på internett ved behov.

Opprett en webserver

I portalen går du til Webservere → Instanser → Opprett og velger:

  • Motor — Nginx eller Apache, og en versjon (de startbare versjonene er i nedtrekkslisten; den anbefalte er markert).
  • Størrelse — størrelsen, fra web.gp1.*-familien (microxlarge).
  • Lagring — diskstørrelse for dokumentroten.
  • VPC + subnett.
  • PHP — aktiver eventuelt PHP og velg en versjon (8.1 / 8.2 / 8.3).

Fra CLI-en

Livssykluskommandoer er motorspesifikke (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 er symmetrisk: 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 er Apache-ekvivalenten.)

PHP er låst i instansens levetid

Å aktivere PHP eller endre PHP-versjon krever at instansen gjenopprettes — det kan ikke slås på for en kjørende webserver. Velg versjonen du trenger allerede ved opprettelsen.

Distribuer innhold

Publiser nettstedet ditt ved å laste opp et .tar.gz-arkiv av dokumentroten. Plattformen pakker det ut i en ny release-katalog og bytter atomisk den aktive symbolske lenken til den, slik at overgangen blir umiddelbar og den forrige releasen beholdes for tilbakerulling.

I portalen åpner du webserverens detaljside og bruker fanen Deploy for å laste opp et arkiv; distribusjonshistorikken vises der.

Fra CLI-en

bash
# Distribuer et arkiv til en instans
fm webserver nginx deploy <instance-id> ./site.tar.gz

# List tidligere distribusjoner (nyeste 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 sporer arkivets innholdshash — bygg om site.tar.gz, så distribuerer neste terraform apply automatisk en ny release.

Motorkonfigurasjon

Et lite, kuratert sett med motorinnstillinger kan justeres uten å berøre rå Nginx-/Apache-konfigurasjon. Nøklene er de samme for begge motorene:

NøkkelHva den styrer
indexFilesIndeksfilnavn som prøves for en katalogforespørsel (f.eks. index.html index.php)
spaFallbackServer index.html for umatchede ruter (single-page-app-fallback)
clientMaxBodySizeMaksimal størrelse på forespørsel/opplasting (f.eks. 25m)
gzipAktiver gzip-komprimering av svar
securityHeadersSend et grunnleggende sett med sikkerhetssvarhoder
error404PageSti til en egendefinert 404-side
error500PageSti til en egendefinert 500-side

I portalen bruker du fanen Config på webserverens detaljside.

Fra CLI-en

bash
# Vis den gjeldende konfigurasjonen
fm webserver nginx config get <instance-id>

# Sett en verdi
fm webserver nginx config set <instance-id> spaFallback=true
fm webserver nginx config set <instance-id> clientMaxBodySize=25m

Med Terraform

Sett config-kartet på instansressursen:

hcl
resource "frostmoln_nginx_instance" "site" {
  # … opprettelsesargumenter som ovenfor …

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

Domener

Bind ett eller flere domener til en kjørende webserver. Bindingen er en registrering hos plattformen: serveren svarer på et hvilket som helst vertsnavn som peker mot IP-en, så det er DNS som gjør et domene live — bindingen markerer hvilke domener du regner som dine og hvilket som er standard.

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

HTTPS termineres ikke for deg ennå

Plattformen utsteder og fornyer ikke sertifikater for et bundet domene. TLS-flagget på bindingen — og TLS-bryteren og det grønne Enabled-merket på instansen i portalen — registrerer bare intensjonen din: ingen sertifikater klargjøres, ingenting lytter på 443, og nettstedet serveres over HTTP. Terminer TLS foran webserveren selv hvis du trenger HTTPS i dag.

(Eller Terraform-ressursen frostmoln_webserver_domain.) Pek domenets DNS mot serverens offentlige IP (se nedenfor), og merk ett domene som standard.

Publiser på internett

En administrert webserver er privat som standard — den får en privat IP og er kun tilgjengelig fra instanser i samme VPC. For å betjene den på det offentlige internett, eksponer den: plattformen tildeler en offentlig IP, tilknytter den til serveren, og instansen viser deretter en offentlig IP.

I portalen bruker du handlingen Expose på instansen.

Fra CLI-en

bash
fm webserver nginx expose <instance-id>     # tildel + koble til en offentlig IP
fm webserver nginx unexpose <instance-id>   # frigi den (tilbake til privat)

Med Terraform

hcl
resource "frostmoln_nginx_instance" "site" {
  # … opprettelsesargumenter som ovenfor …
  public = true
}

Eksponering tildeler en fakturert offentlig IP

Eksponering tildeler en offentlig IP, som faktureres så lenge den holdes. Å aveksponere serveren — eller slette den — frigir den offentlig IP-en.

Livssyklus og begrensninger

  • Start, stopp, omstart, endre størrelse (utvide lagring), og slett fra instansens detaljside eller CLI-en (fm webserver nginx instance start|stop|restart|resize|delete).
  • PHP er låst etter opprettelse — gjenopprett instansen for å endre det.
  • Tilbakerulling — den forrige releasen beholdes etter hver distribusjon.
  • Ingen innebygd lastbalansering eller autoskalering på tvers av webserver-instanser (sett en lastbalanserer foran for det).

Relatert