Skip to content

Webservere ​

Administrerede Webservere kører Nginx eller Apache for dig — platformen opretter VM'en, installerer og konfigurerer webserveren (valgfrit med PHP), binder dine domæner, udruller dit indhold og kan offentliggøre webstedet på internettet efter behov.

Opret en webserver ​

Gå i portalen til Webservere → Instanser → Opret, og vælg:

  • Motor — Nginx eller Apache, og en version (de versioner, der kan startes, ligger i rullelisten; den anbefalede er markeret).
  • Flavor — størrelsen, fra familien web.co1.* (small … xlarge).
  • Lagring — diskstørrelse til dokumentroden.
  • VPC + subnet.
  • PHP — aktiver valgfrit PHP, og vælg en version (8.1 / 8.2 / 8.3).

Fra CLI'en ​

Livscykluskommandoerne er motorspecifikke (fm webserver nginx … / fm webserver apache …).

bash
fm webserver nginx instance create \
  --name site-1 \
  --version 1.30 \
  --flavor web.co1.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.co1.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-modstykket.)

PHP ligger fast i hele instansens levetid

At aktivere PHP eller ændre PHP-versionen kræver, at instansen oprettes på ny — det kan ikke slås til og fra på en kørende webserver. Vælg den version, du har brug for, allerede ved oprettelsen.

Udrul indhold ​

Offentliggør dit websted ved at uploade et .tar.gz-arkiv af din dokumentrod. Platformen pakker det ud i en ny release-mappe og skifter atomart det aktive symlink over til den, så overgangen er øjeblikkelig, og den foregående release beholdes til tilbagerulning.

I portalen åbner du webserverens detaljeside og bruger fanen Deploy til at uploade et arkiv; udrulningshistorikken vises der.

Fra CLI'en ​

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

# Vis tidligere udrulninger (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 følger arkivets indholdshash — byg site.tar.gz om, og den næste terraform apply skubber automatisk en ny udrulning ud.

Motorkonfiguration ​

Et lille, kurateret sæt motorindstillinger kan justeres uden at røre rå Nginx-/Apache-konfiguration. Nøglerne er de samme for begge motorer:

NøgleHvad den styrer
indexFilesIndeksfilnavne, der prøves ved en mappeforespørgsel (f.eks. index.html index.php)
spaFallbackServer index.html for ruter uden match (single-page-app-fallback)
clientMaxBodySizeMaksimal størrelse på forespørgsels-/upload-body (f.eks. 25m)
gzipAktiver gzip-komprimering af svar
securityHeadersSend et grundsæt af sikkerhedsheadere i svaret
error404PageSti til en tilpasset 404-side
error500PageSti til en tilpasset 500-side

I portalen bruger du fanen Config på webserverens detaljeside.

Fra CLI'en ​

bash
# Vis den nuværende konfiguration
fm webserver nginx config get <instance-id>

# Sæt en værdi
fm webserver nginx config set <instance-id> spaFallback=true
fm webserver nginx config set <instance-id> clientMaxBodySize=25m

Med Terraform ​

Sæt config-kortet på instansressourcen:

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

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

Domæner ​

Bind ét eller flere domæner til en kørende webserver. Bindingen er en notering hos platformen: serveren svarer på ethvert værtsnavn, der peges mod dens IP-adresse, så det er DNS, der gør et domæne live — bindingen markerer, hvilke domæner du betragter som dine, og hvilket der er standard.

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

HTTPS termineres ikke for dig endnu

Platformen udsteder og fornyer ikke certifikater for et bundet domæne. TLS-flaget på bindingen — og TLS-kontakten og det grønne Enabled-mærkat på instansen i portalen — registrerer kun din hensigt: der leveres intet certifikat, intet lytter på 443, og webstedet serveres over HTTP. Terminer selv TLS foran webserveren, hvis du har brug for HTTPS i dag.

(Eller Terraform-ressourcen frostmoln_webserver_domain.) Peg dit domænes DNS mod serverens offentlige IP-adresse (se nedenfor), og markér ét domæne som standard.

Offentliggør på internettet ​

En administreret webserver er privat som standard — den får en privat IP-adresse og kan kun nås fra instanser i samme VPC. Vil du servere den på det offentlige internet, så eksponer den: platformen allokerer en offentlig IP-adresse, associerer den med serveren, og instansen viser derefter en offentlig IP-adresse.

I portalen bruger du handlingen Expose på instansen.

Fra CLI'en ​

bash
fm webserver nginx expose <instance-id>     # allokér + tilknyt en offentlig IP-adresse
fm webserver nginx unexpose <instance-id>   # frigiv den (tilbage til privat)

Med Terraform ​

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

Eksponering allokerer en faktureret offentlig IP-adresse

Eksponering allokerer en offentlig IP-adresse, som faktureres, så længe den holdes. At afeksponere serveren — eller slette den — frigiver den offentlige IP-adresse.

Hvad der er åbent, og for hvem ​

Hver webserver får sin egen sikkerhedsgruppe — en firewall, som platformen opretter og tilknytter, når instansen oprettes. Den tillader indgående tcp/80 og tcp/443 fra enhver kilde (0.0.0.0/0), og udgående trafik er ubegrænset. Så længe serveren er privat, er ingen offentlig IP-adresse associeret, så intet uden for dit VPC kan nå den; når du først eksponerer den, er de to porte åbne mod hele internettet.

Alt, der allerede kan rute ind i dit VPC — dine andre instanser, en peering, en VPN — når også 80/443, inklusive den lastbalancer, der foreslås nedenfor.

Gruppens id findes på instansen (security_group_id i Terraform, og det vises i portalen), så du kan inspicere dens regler:

bash
fm network security-group get <sg-id>

Kildeintervallet kan endnu ikke konfigureres

Denne gruppe administreres af platformen: den er ikke tænkt til, at du redigerer den, og ændringer af den afvises normalt. Det betyder også, at du endnu ikke kan indsnævre 80/443 til dit eget adresseinterval. En fremtidig udgivelse vil lade dig begrænse kilden; standarden på eksisterende servere ændrer sig ikke bag om ryggen på dig. Har du brug for den begrænsning i dag, så hold webserveren privat, og sæt en lastbalancer eller din egen proxy foran den.

Livscyklus og begrænsninger ​

  • Start, stop, genstart, ændr størrelse (udvid lagringen) og slet fra instansens detaljeside eller fra CLI'en (fm webserver nginx instance start|stop|restart|resize|delete).
  • PHP ligger fast efter oprettelsen — opret instansen på ny for at ændre det.
  • Tilbagerulning — den foregående release beholdes efter hver udrulning.
  • Ingen indbygget lastbalancering eller autoskalering på tværs af webserverinstanser (sæt en lastbalancer foran til det).

Relateret ​