Ubuntu VPS iestatīšana pirmajai vietnei
Šī Ubuntu VPS iestatīšanas pamācība paredzēta jaunam Ubuntu 24.04 serverim bez esošas vietnes. Izveidosiet administratoru, publicēsiet statisku lapu ar Nginx un pieslēgsiet HTTPS. Lietotnes izpildvide un datubāze šajā uzdevumā nav iekļauta.
VPSuntu · Atjaunināts · Lasīšana aptuveni 4 min.
Šajā pamācībā
Sagatavojiet serveri un atkopšanas piekļuvi
Vajadzīgs Ubuntu 24.04 sistēmas attēls, publiska IPv4, sākotnējais konts ar sudo un jums piederošs domēns. Lokālās komandas paredzētas Bash vidē Linux, macOS vai WSL; servera komandas izpildiet SSH sesijā. Visur aizstājiet 203.0.113.10 un app.example.com ar savām vērtībām. Sākotnējais konts piemērā ir ubuntu.
Pirms ugunsmūra izmaiņām atrodiet pakalpojumu sniedzēja atkopšanas konsoli. Ja norādītie lietotāji, faili vai vietnes jau pastāv, apturiet procedūru un pielāgojiet plānu esošajai sistēmai. Strādājošai vietnei vispirms izveidojiet pārbaudītu kopiju un izmēģiniet izmaiņas atsevišķā vidē. Oracle Cloud tīkla izņēmums ir aprakstīts Nginx sadaļā.
Pieslēdzieties ar savu SSH atslēgu
Savā datorā izveidojiet atsevišķu atslēgu pāri. Izvēlieties paroli privātās atslēgas aizsardzībai. Ja norādītais atslēgas fails jau pastāv, nepārrakstiet to.
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pubJa veidojat jaunu serveri, tā izveides panelī pievienojiet .pub faila saturu. Jau izveidotam tukšam serverim saglabājiet pašreizējo sesiju un pārsūtiet publisko atslēgu, izmantojot strādājošo piekļuvi. Piemēra existing_vps_key aizstājiet ar esošo atslēgu; piekļūstot ar paroli vai aģentu, attiecīgo -i argumentu izlaidiet. Nemainiet autentifikācijas režīmu tikai šīs darbības dēļ.
scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubEsošajā servera sesijā pārbaudiet, ka saņemta publiskā atslēga, un pievienojiet to authorized_keys, saglabājot iepriekšējos ierakstus. Ja nav neviena strādājoša piekļuves ceļa, vispirms izmantojiet atkopšanas konsoli.
if ssh-keygen -lf ~/ubuntu-vps-admin.pub; then
mkdir -p ~/.ssh
chmod 700 ~/.ssh
printf '\n' >> ~/.ssh/authorized_keys
cat ~/ubuntu-vps-admin.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
fiPirms pirmā savienojuma servera Ed25519 atslēgas nospiedumu iegūstiet uzticamajā konsolē un salīdziniet ar SSH klienta piedāvāto. Servera identitātes atslēga atšķiras no jūsu pieteikšanās atslēgas.
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubSavā datorā atveriet jaunu savienojumu. Iepriekšējo sesiju paturiet atvērtu.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Vēlreiz nosūtiet publisko atslēgu: tā būs vajadzīga jaunā administratora kontam.
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubIzveidojiet atsevišķu administratoru
Pārbaudiet, vai deploy konts neeksistē. Ja tas jau ir sistēmā, izvēlieties citu nosaukumu un konsekventi mainiet lietotāju, grupu un ceļus turpmākajās komandās. Pārskatiet Ubuntu versiju, pieejamos resursus un atjauninājumu piedāvājumu. Jaunajam kontam izvēlieties stipru paroli sudo apstiprināšanai.
cat /etc/os-release
free -h
df -h /
sudo apt update
sudo apt upgrade
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo install -m 600 -o deploy -g deploy ~/ubuntu-vps-admin.pub /home/deploy/.ssh/authorized_keysNo sava datora izveidojiet neatkarīgu savienojumu ar jauno atslēgu un deploy kontu.
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10Jaunajā servera sesijā pārbaudiet sudo tiesības. Rezultātam jābūt root. Turpmākās servera darbības izpildiet no šī konta, bet sākotnējo piekļuvi saglabājiet.
sudo whoamiInstalējiet Nginx un pārbaudiet tīkla ceļu
Serverī instalējiet un palaidiet Nginx.
sudo apt install nginx
sudo systemctl enable --now nginxPakalpojumu sniedzēja tīkla kārtulās atļaujiet izmantoto SSH portu tikai no administratora adreses, bet publiskai vietnei — TCP 80 un 443. Piemērā SSH izmanto 22. portu; ja jūsu ports ir cits, saglabājiet tieši to.
Oracle Cloud Ubuntu attēliem izlaidiet visu tālāk redzamo UFW bloku. Saglabājiet attēla iptables kārtulas, tostarp iSCSI sāknēšanas un bloku disku piekļuvi. Konfigurējiet security lists vai NSG un dokumentētās viesu sistēmas kārtulas; neiztukšojiet ugunsmūri un neaizstājiet to ar jaunu noklusējuma konfigurāciju. Skatiet Oracle instances tīkla pārbaudi.
Citam jaunam serverim, kura attēls un pakalpojumu sniedzējs atbalsta šādu UFW iestatīšanu, vispirms atļaujiet faktisko SSH portu un tikai tad ieslēdziet ugunsmūri.
sudo apt install ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbosePēc izmaiņām pārbaudiet jaunu SSH savienojumu. Atvērta vecā sesija neapliecina jaunu savienojumu darbību. Pirms sertifikāta iegūšanas jāsasniedz arī HTTP lapa no ārēja datora.
Publicējiet savu statisko lapu
Izveidojiet jaunu vietnes direktoriju un Nginx konfigurāciju. Domēnu nomainiet gan ceļos, gan server_name. Saglabājiet pēdiņās rakstīto EOF, lai čaula neaizstātu Nginx mainīgo $uri. Nepārrakstiet esošu vietnes konfigurāciju.
sudo install -d -m 755 /var/www/first-site
printf '%s\n' '<!doctype html><html lang="en"><title>First deployment</title><h1>Ubuntu VPS is serving this page</h1></html>' | sudo tee /var/www/first-site/index.html
sudo tee /etc/nginx/sites-available/first-site >/dev/null <<'EOF'
server {
listen 80;
listen [::]:80;
server_name app.example.com;
root /var/www/first-site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/first-site /etc/nginx/sites-enabled/first-site
sudo nginx -tIeslēdziet vietni un pārlādējiet Nginx tikai pēc veiksmīga konfigurācijas testa.
sudo systemctl reload nginxNo sava datora pārbaudiet jauno vietni ar norādīto servera IP, vēl nemainot DNS. Atbildē jābūt jūsu lapas virsrakstam, nevis noklusējuma Nginx lapai.
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/Piesaistiet DNS un iegūstiet HTTPS sertifikātu
Domēna A ierakstam norādiet servera IPv4. AAAA ierakstu pievienojiet tikai tad, ja IPv6 patiešām darbojas; vecs AAAA var novirzīt daļu pieprasījumu nepareizi. Šīs procedūras sākumā izmantojiet tiešu DNS bez starpniekservera. No ārēja datora HTTP adresei jādarbojas arī bez curl --resolve.
Ubuntu repozitoriju Certbot pakotnei var būt vajadzīga Universe komponente. Serverī izpildiet komandas, norādiet savu e-pastu un izlasiet sertifikāta izsniegšanas nosacījumus. Certbot Nginx integrācija šajā piemērā pievieno HTTPS un pāradresāciju.
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com --redirect
sudo nginx -t
sudo certbot renew --dry-run
systemctl list-timers --all certbot.timerPārbaudiet automātiskās atjaunošanas taimeri. Ja tas nav aktīvs, ieslēdziet to ar systemctl enable --now certbot.timer. Atjaunošanas pārbaudei jāpabeidzas veiksmīgi; HTTP validācijai saglabājiet pieejamu 80. portu.
Pārbaudiet vietni pēc pārstartēšanas
Savā datorā pārbaudiet HTTP pāradresāciju un HTTPS lapu, neatspējojot sertifikāta pārbaudi.
curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/Jaunā testa serverī ieplānojiet pārstartēšanu. Pēc tās atveriet jaunu deploy SSH sesiju, pārbaudiet Nginx aktīvo statusu un atkārtojiet ārējo HTTP un HTTPS pārbaudi. Ja serveris neatgriežas, izmantojiet iepriekš sagatavoto konsoli. Viena veiksmīga atbilde pirms pārstartēšanas vēl nepierāda pakalpojuma automātisku palaišanos.
Atrodiet problēmu pēc simptoma
Mazā ekrānā ritiniet tabulu sāniski, lai redzētu visas kolonnas.
| Simptoms | Pirmā pārbaude |
|---|---|
| SSH savienojumam iestājas noildze | Publiskā adrese, faktiskais ports un pakalpojumu sniedzēja un viesu sistēmas kārtulas |
| Atslēga ir noraidīta | Pareizais konts, piedāvātā atslēga un authorized_keys |
| Redzama Nginx noklusējuma lapa | Domēna server_name, ieslēgtā vietne un pieprasījuma Host |
| Certbot nevar apstiprināt domēnu | A un AAAA ieraksti, ārēja HTTP piekļuve un 80. ports |
| Nginx konfigurācijas tests neizdodas | Precīza nginx -t kļūda un servisa žurnāls |
Savienojuma kļūdu izpētei izmantojiet SSH diagnostiku. Pirms svarīga satura publicēšanas saglabājiet vietnes failus, konfigurāciju un DNS atjaunošanas plānu ārpus servera, kā arī pārbaudiet failu atjaunošanu. Privātās sertifikāta atslēgas glabājiet aizsargāti.
Ieslēdziet vietnes pieejamības un sertifikāta termiņa uzraudzību. Ja vēlāk pievienosiet lietotni vai datubāzi, novērtējiet visu programmatūru un izmēriet slodzi. Šeit publicētā statiskā lapa pati par sevi nepārbauda lietotnes sesijas, datubāzes ierakstus vai fona darbus.
Jautājumi un atbildes
Vai šo procedūru var palaist serverī ar esošu vietni?
Neizpildiet to nemainītā veidā. Pārbaudiet esošos lietotājus, ceļus, ugunsmūri un Nginx vietnes. Izveidojiet atjaunojamu kopiju un izmēģiniet pārmaiņas atsevišķā vidē.
Vai pēc šīm darbībām strādās WordPress vai Node.js lietotne?
Izveidota ir statiska HTTPS vietne. CMS, lietotnes izpildvide, datubāze un to dublēšana jāiestata atsevišķi atbilstoši konkrētajam projektam.