Praktiline juhend / Esimene veebileht

Ubuntu VPS-i seadistamine esimese veebilehe jaoks

Seadistage uus Ubuntu 24.04 LTS VPS ja avaldage väike staatiline veebileht Nginxi ning HTTPS-iga. Juhend hõlmab eraldi administraatorit, SSH-võtmega sisselogimist, sertifikaadi uuendamist ja veebilehe kontrolli pärast taaskäivitust.

· Uuendatud · Lugemisaeg umbes 6 min.

Selles juhendis

Valmistage ette server, domeen ja taastejuurdepääs

Näide eeldab uut Ubuntu 24.04 VPS-i, avalikku IPv4-aadressi, SSH-d pordil 22, sudo-õigusega algset kontot ja teie hallatavat domeeni. Looge SSH-võti järgmises jaotises enne serveri loomist. Juba loodud tühja serveri puhul lisage võti toimiva juurdepääsu kaudu. Kohaliku arvuti käsud kasutavad Bashi Linuxis, macOS-is või WSL-is; serverikäsud käivitatakse SSH-seansis. Kui näidisteed kuuluvad olemasolevale veebilehele, peatuge.

Asendage kõik 203.0.113.10 väärtused serveri aadressiga ja app.example.com oma hostinimega. Mõlemad on dokumendinäited. Algne kasutaja on siin ubuntu; kasutage pakkuja antud kontot. Avage taastekonsool enne ligipääsu või tulemüüri muutmist. Kontrollige tõmmise tulemüürijuhist: Oracle Cloudi Ubuntu vajab allpool eraldi haru.

Looge võti või lisage see toimiva ühenduse kaudu

Looge oma arvutis eraldi võti ja määrake paroolifraas. Kui sama failinimi on olemas, valige teine nimi kogu juhendi jaoks. .pub fail on avalik; privaatfail jääb teie arvutisse.

mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pub

Uue VPS-i korral: looge nüüd Ubuntu 24.04 server ja sisestage avalik võti pakkuja SSH-võtme väljale. Kinnitage algne kasutajanimi, jätke olemasoleva serveri käsud vahele ning jätkake hostivõtme kontrolliga.

Juba loodud tühja VPS-i korral: hoidke toimiv SSH-seanss lahti. Kopeerige oma arvuti teisest terminalist uus avalik võti, kasutades olemasolevat autentimist. Asendage existing_vps_key praeguse privaatvõtme nimega. Parooli või SSH-agendi kasutamisel jätke -i ~/.ssh/existing_vps_key ära; ärge muutke serveri autentimispoliitikat.

scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pub

Kontrollige olemasolevas serveriseansis üles laaditud avaliku võtme faili ja lisage see algse konto authorized_keys faili. Lisamine säilitab olemasolevad kirjed ja käsitleb ka puuduva lõpureavahetusega faili. See samm käib teie algse konto kohta. Toimiva ligipääsu puudumisel kasutage esmalt pakkuja taastamisprotsessi.

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
fi

Mõlema tee korral võrrelge esimese ühenduse sõrmejälge usaldatud taastekonsoolis oleva vastava avaliku hostivõtmega. Ed25519 hostivõtme jaoks käivitage konsoolis:

sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Avage oma arvutist uus ühendus uue võtmega. Säilitage algne ligipääs kuni kontrolli õnnestumiseni.

ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10

Kopeerige oma arvuti teisest terminalist avalik võti järgmises etapis loodava administraatori jaoks. Sama ajutise avaliku faili uuesti kopeerimine on lubatud, kui eelmine haru selle juba üles laadis.

scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pub

Looge eraldi administraator ja katsetage sisselogimist

Kontrollige serveris esmalt getent passwd deploy. Kontot ei tohiks leiduda. Kui deploy on olemas, valige kasutamata nimi ning asendage see kõigis käskudes, kodukataloogides ja rühmanimedes. Nii ei kirjutata teise kasutaja võtmefaili üle.

Kontrollige süsteemi ja ressursse, vaadake uuendused üle ning looge administraator. Määrake tugev parool sudo küsimuste jaoks. Install-käsud annavad võtmefaili kontole sobiva omandi ja piiratud õigustega.

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_keys

Avage oma arvutis uus terminal ja logige sisse uue administraatorina.

ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10

Käivitage selles uues serveriseansis sudo. Pärast deploy parooli sisestamist peab tulemus olema root. Jätkake siin alles siis, kui mõlemad kontrollid töötavad, ning hoidke algne ligipääs alles.

sudo whoami

Paigaldage Nginx ja kasutage tõmmisele sobivat tulemüüri

Paigaldage serveris Nginx. Ühendust mõjutavad nii külalissüsteemi tulemüür kui ka pakkuja võrgutulemüür; hoidke konsool ja toimiv SSH-seanss kättesaadavana.

sudo apt install nginx
sudo systemctl enable --now nginx

Lubage pakkuja tulemüüris TCP 22 oma haldusaadressilt ning TCP 80/443 veebilehe külastajatele. Teise SSH-pordi korral säilitage selle reegel. Võrgureegel üksi ei ava külalissüsteemis blokeeritud porti.

Oracle Cloudi Ubuntu tõmmis: jätke järgmine UFW käsuplokk täielikult vahele. Oracle hoiatab, et UFW võib häirida olulisi tulemüürireegleid ja takistada alglaadimist. Säilitage tõmmise iptables reeglid, sealhulgas iSCSI alglaadimis- ja plokiketaste kaitse. Seadistage OCI turvaloendid või NSG-d ning dokumenteeritud külalissüsteemi reeglid HTTP/HTTPS jaoks. Ärge tühjendage reegleid ega asendage tulemüüripakette.

UFW haru teistele uutele Ubuntu tõmmistele: kasutage neid käske ainult siis, kui pakkuja toetab UFW-d ja tõmmis ei nõua muud hallatud seadistust. Lubage tegelik SSH-port enne tulemüüri aktiveerimist. Näites on see 22.

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 verbose

Kontrollige kummagi haru järel uut SSH-sisselogimist. Varem avatud seanss ei testi uut ühendust. Enne sertifikaadi taotlemist peab töötama ka järgmise jaotise väline HTTP-kontroll.

Avaldage leht eraldi Nginxi saidina

Looge serveris uus dokumendijuur ja seadistus. Asendage plokis hostinimi. Säilitage jutumärkides EOF tähised: need takistavad kestal Nginxi muutujate, näiteks $uri, asendamist.

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 -t

Laadige serveris seadistus uuesti ainult pärast edukat süntaksikontrolli.

sudo systemctl reload nginx

Pärige oma arvutist seda hostinime serveri aadressil enne DNS-i muutmist. Vastuses peab olema teie pealkiri, mitte Nginxi vaikimisi tervitusleht.

curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/

Ühendage DNS ja väljastage HTTPS-sertifikaat

Looge hostinime DNS-i A-kirje VPS-i IPv4-aadressile. AAAA-kirje avaldage ainult siis, kui IPv6 selles serveris töötab. Vana AAAA-kirje võib suunata külastajad ja sertifikaadikontrolli mujale. See näide eeldab DNS-i otsest suunamist VPS-ile ilma puhverserverita.

Pärige oma arvutist http://app.example.com/ ilma --resolve valikuta. Jätkake, kui vastuseks on teie leht. Paigaldage serveris Ubuntu hoidla Certbot ja Nginxi lisamoodul; need vajavad Universe hoidlat. Lahendage puuduvate pakettide viga enne jätkamist.

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.timer

Järgige e-posti ja tingimuste küsimusi. Certbot muudab selle saidi seadistust ning lubab HTTP-st HTTPS-i ümbersuunamise. Kontrollige uuendustaimerit; passiivse taimeri korral kasutage sudo systemctl enable --now certbot.timer. Hoidke port 80 HTTP valideerimiseks ja sertifikaadi uuendamiseks ligipääsetavana.

Kontrollige väljastpoolt ja pärast taaskäivitust

Kontrollige oma arvutist ümbersuunamist, sertifikaati ja sisu. HTTP peab suunama HTTPS-i ning HTTPS peab õnnestuma ja näitama teie pealkirja. Ärge lisage curl-käsule -k: see peidab sertifikaadi valideerimise vead.

curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/

Veel katsekeskkonnas käivitage serveris sudo reboot. Serveri naasmisel ühenduge kasutajana deploy, kontrollige systemctl is-active nginx ja korrake välist HTTPS-päringut. Taaskäivitus sulgeb SSH-seansid. Kui masin ei naase, kasutage konsooli.

Leidke ebaõnnestunud kontrolli põhjus

Väikesel ekraanil kerige tabelit külgsuunas, et näha kõiki veerge.

SümptomEsimene kontroll
SSH ühendus aegubAadress, pakkuja ja külalissüsteemi tulemüür, taastekonsool
Permission denied (publickey)Kasutajanimi, privaatvõti ja authorized_keys õigused
Nginxi vaikimisi lehtDNS-i siht, server_name ja aktiveeritud sait
Sertifikaadi valideerimise vigaAvalikud A/AAAA kirjed ja port 80
Nginx ei käivitu pärast muudatustsudo nginx -t ja sudo journalctl -u nginx -n 50 --no-pager

Sisselogimise tõrke korral kasutage SSH vea diagnoosimist, et eristada võrgu-, teenuse- ja võtmeprobleemi enne ligipääsuseadete muutmist.

Hoidke saidifailid, Nginxi seadistus, DNS-kirjed ja taastamisjuhis väljaspool VPS-i. Katsetage taastamist teises masinas. Sertifikaadi privaatvõtme varukoopia vajab kaitstud salvestust. Lisage käideldavuse ja sertifikaadi aegumise teavitused; üks edukas kontroll ei jälgi järgmise kuu uuendamist.

Alustage staatilise lehe ja seadistuse varundamise harjutusega. Kogu teenuse taastamine vajab ka ülejäänud faile, sertifikaate ja seadistust. See juurutus teenindab staatilisi faile; rakenduse käituskeskkond või andmebaas vajab oma teenust ja varundusviisi. Ressursside lisamisel kasutage koormuse mõõtmise juhendit.

Korduma kippuvad küsimused

Kas käske võib käivitada olemasoleval veebiserveril?

Katsetage esmalt eraldi VPS-is. Näide loob faile, aktiveerib tulemüüri ja lubab Certbotil Nginxi muuta. Olemasoleval serveril tuleb enne hinnata saite, ligipääsureegleid ja taastamist.

Kas see paigaldab WordPressi, Node.js-i või andmebaasi?

Ei. Tulemuseks on staatiline HTTPS-veebileht. Hoidke see toimiv lähtepunkt alles ning lisage seejärel rakenduse teenus koos käivituse, tervisekontrolli ja andmete taastamise kontrolliga.

Juhend on uuele Ubuntu 24.04 VPS-ile, otsesele DNS-ile ja SSH-pordile 22. Valige pakkuja toetatud tulemüüriharu; Oracle Cloudi Ubuntu korral jätke UFW vahele. Protseduuri ei ole läbi katsetatud kõigi pakkujate tõmmistel.

Seotud juhendid