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.
VPSuntu · 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.pubUue 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.pubKontrollige 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
fiMõ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.pubAvage oma arvutist uus ühendus uue võtmega. Säilitage algne ligipääs kuni kontrolli õnnestumiseni.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Kopeerige 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.pubLooge 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_keysAvage oma arvutis uus terminal ja logige sisse uue administraatorina.
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10Kä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 whoamiPaigaldage 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 nginxLubage 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 verboseKontrollige 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 -tLaadige serveris seadistus uuesti ainult pärast edukat süntaksikontrolli.
sudo systemctl reload nginxPä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.timerJä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ümptom | Esimene kontroll |
|---|---|
| SSH ühendus aegub | Aadress, pakkuja ja külalissüsteemi tulemüür, taastekonsool |
| Permission denied (publickey) | Kasutajanimi, privaatvõti ja authorized_keys õigused |
| Nginxi vaikimisi leht | DNS-i siht, server_name ja aktiveeritud sait |
| Sertifikaadi valideerimise viga | Avalikud A/AAAA kirjed ja port 80 |
| Nginx ei käivitu pärast muudatust | sudo 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.