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 …).
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
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
# 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
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øgle | Hvad den styrer |
|---|---|
indexFiles | Indeksfilnavne, der prøves ved en mappeforespørgsel (f.eks. index.html index.php) |
spaFallback | Server index.html for ruter uden match (single-page-app-fallback) |
clientMaxBodySize | Maksimal størrelse på forespørgsels-/upload-body (f.eks. 25m) |
gzip | Aktiver gzip-komprimering af svar |
securityHeaders | Send et grundsæt af sikkerhedsheadere i svaret |
error404Page | Sti til en tilpasset 404-side |
error500Page | Sti til en tilpasset 500-side |
I portalen bruger du fanen Config på webserverens detaljeside.
Fra CLI'en
# 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=25mMed Terraform
Sæt config-kortet på instansressourcen:
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.
fm webserver nginx domain add <instance-id> --name example.comHTTPS 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
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
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:
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).