Ubuntu VPS quraşdırılması: SSH-dən HTTPS-ə
Yeni Ubuntu 24.04 LTS VPS-də ayrıca administrator hesabı yaradın və Nginx ilə kiçik statik saytı HTTPS üzərindən yayımlayın. Hər mərhələdə nəticəni yoxlayın; yeni giriş təsdiqlənənədək əvvəlki bağlantını saxlayın.
VPSuntu · Yenilənib: · Oxuma vaxtı: təxminən 5 dəqiqə
Bələdçinin məzmunu
Server, domen və bərpa girişini hazırlayın
Yeni Ubuntu 24.04 VPS, ictimai IPv4, 22-ci portda SSH, sudo səlahiyyətli ilkin hesab və idarə etdiyiniz domen lazımdır. Serveri yaratmazdan əvvəl növbəti bölmədə SSH açarı hazırlayın. Boş server artıq yaradılıbsa, açarı işləyən giriş vasitəsilə əlavə edən alternativ yolu seçin. Müştəri əmrləri Linux, macOS və ya WSL-də Bash ilə; server əmrləri SSH daxilində icra olunur. Nümunə yollar mövcud layihəyə aiddirsə, dayanın.
203.0.113.10 ünvanını öz server IP-nizlə, app.example.com adını öz hostname-inizlə əvəz edin. İlkin ubuntu hesabını provayderin hesabına uyğunlaşdırın. Girişi və firewall-u dəyişməzdən əvvəl recovery console açın. Obrazın firewall sənədini yoxlayın: Oracle Cloud Ubuntu üçün aşağıdakı UFW yolu uyğun deyil.
SSH açarını yaradın və ya mövcud girişlə əlavə edin
Kompüterinizdə ayrıca açar yaradıb passphrase seçin. Eyni fayl varsa, onu əvəz etməyin; başqa adı bütün sonrakı addımlarda işlədin. .pub açıq açardır, şəxsi açar isə kompüterinizdə qalmalıdır.
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pubYeni VPS üçün: Ubuntu 24.04 serverini yaradarkən açıq açarı provayderin SSH key sahəsinə daxil edin. İlkin istifadəçini dəqiqləşdirin və aşağıdakı host fingerprint yoxlamasına keçin. Mövcud server üçün nəzərdə tutulan növbəti iki əmri buraxın.
Artıq yaradılmış boş VPS üçün: işləyən SSH sessiyasını açıq saxlayın. Kompüterdə başqa terminaldan yeni açıq açarı mövcud autentifikasiya ilə köçürün. existing_vps_key yerinə cari şəxsi açar faylını yazın. Hazırkı giriş parol və ya SSH agent ilədirsə, -i ~/.ssh/existing_vps_key hissəsini çıxarın; serverin autentifikasiya siyasətini dəyişməyin.
scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubMövcud server sessiyasında yüklənmiş açıq açarı yoxlayıb öz ilkin hesabınızın authorized_keys faylına əlavə edin. Əlavə etmə əvvəlki qeydləri saxlayır; əlavə newline son sətrində yeni sətir olmayan faylı da nəzərə alır. İşləyən giriş yoxdursa, əvvəlcə provayderin bərpa yolundan istifadə edin.
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
fiHər iki halda ilk bağlantını qəbul etməzdən əvvəl host key fingerprint-i etibarlı konsoldakı uyğun server açarı ilə müqayisə edin. Ed25519 host key üçün konsolda:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubKompüterinizdən yeni açarla təzə bağlantı açın. Uğurlu nəticəyədək əvvəlki girişi saxlayın.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Kompüterdə başqa terminaldan növbəti mərhələdə yaradılacaq administrator üçün açıq açarı köçürün. Müvəqqəti açıq açar faylını yenidən köçürmək olar.
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubAdministrator yaradıb ayrıca sessiyada sınayın
Serverdə əvvəlcə getent passwd deploy işlədin. Heç bir hesab qaytarılmamalıdır. deploy artıq varsa, istifadə olunmayan ad seçin, istifadəçi, qrup və home yollarını hər yerdə dəyişin. Başqasının key faylını əvəz etməyin.
Obrazı və resursları yoxlayın, yeniləmələri nəzərdən keçirin, sonra administrator yaradın. Sudo sorğuları üçün güclü parol təyin edin. install əmrləri açar faylının sahibini və məhdud icazələri qurur.
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_keysKompüterdə ayrıca terminal açıb yeni administratorla qoşulun:
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10Yeni server sessiyasında sudo-nu sınayın. deploy parolu qəbul edildikdən sonra root görünməlidir. Hər iki yoxlama uğurludursa, burada davam edin və əvvəlki girişi açıq saxlayın.
sudo whoamiNginx və obraza uyğun firewall qurun
Serverdə əvvəlcə Nginx quraşdırın. Provayderin şəbəkə firewall-u və guest firewall birlikdə bağlantıya təsir edir. Dəyişiklik zamanı konsol və işləyən SSH sessiyası açıq qalsın.
sudo apt install nginx
sudo systemctl enable --now nginxProvayder şəbəkəsində administrator ünvanınızdan TCP 22-yə, sayt ziyarətçilərinə isə TCP 80/443-ə icazə verin. SSH başqa portdadırsa, onun qaydasını qoruyun. Şəbəkədəki icazə guest firewall blokunu aradan qaldırmır.
Oracle Cloud Ubuntu obrazları: aşağıdakı UFW blokunu bütövlükdə buraxın. UFW obrazın vacib qaydalarına müdaxilə edib sistemin açılmasına mane ola bilər. iSCSI boot və block volume qaydaları daxil olmaqla mövcud iptables qaydalarını saxlayın. HTTP/HTTPS üçün OCI security list və ya NSG-ni, eləcə də sənədləşdirilmiş guest firewall qaydalarını sazlayın. Qaydaları toplu silməyin və obrazın firewall paketlərini dəyişməyin.
Digər yeni Ubuntu obrazları üçün UFW yolu: yalnız provayder UFW-ni dəstəkləyirsə və ayrıca idarə olunan firewall tələb etmirsə istifadə edin. Aktivləşdirməzdən əvvəl faktiki SSH portuna icazə verin; nümunədə 22-ci portdur.
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 verboseHər iki yoldan sonra yeni SSH girişi yoxlayın. Açıq sessiya yeni bağlantının işlədiyini göstərmir. Sertifikat istəməzdən əvvəl növbəti xarici HTTP yoxlaması uğurlu olmalıdır.
Səhifəni ayrıca Nginx saytında yerləşdirin
Serverdə yeni document root və konfiqurasiya yaradın. Blokdakı hostname-i dəyişin. Dırnaq içindəki EOF markerlərini saxlayın: onlar shell-in Nginx $uri dəyişənini vaxtından əvvəl açmasına mane olur.
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 -tYalnız konfiqurasiya yoxlaması uğurlu olduqda Nginx-i reload edin:
sudo systemctl reload nginxDNS-i dəyişməzdən əvvəl kompüterinizdən hostname sorğusunu server IP-sinə yönəldin. Standart Nginx qarşılanma səhifəsi deyil, öz başlığınız görünməlidir.
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/DNS-i yönəldin və HTTPS sertifikatı alın
Hostname üçün A qeydini VPS IPv4 ünvanına yönəldin. AAAA qeydini yalnız serverdə IPv6 işləyəndə yayımlayın; köhnə AAAA ziyarətçiləri və sertifikat yoxlamasını başqa ünvana göndərə bilər. Nümunədə DNS proxy olmadan birbaşa VPS-ə gedir.
Kompüterinizdən http://app.example.com/ ünvanını --resolve olmadan yoxlayın. Öz səhifəniz görünəndə serverdə Ubuntu arxivindən Certbot və Nginx plugin quraşdırın. Bu paketlər Universe repository-sini tələb edir; package-not-found xətasını davam etməzdən əvvəl düzəldin.
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.timerEmail və şərtlər sorğularını tamamlayın. Certbot sayt konfiqurasiyasını dəyişib HTTP-dən HTTPS-ə yönləndirməni aktivləşdirir. Renewal timer-in planlaşdırıldığını yoxlayın; aktiv deyilsə, sudo systemctl enable --now certbot.timer işlədin. HTTP sertifikat yoxlaması və yenilənməsi üçün 80-ci port açıq qalsın.
Kənardan və reboot-dan sonra yoxlayın
Kompüterinizdə yönləndirməni, sertifikatı və məzmunu yoxlayın. HTTP HTTPS-ə yönəlməli, HTTPS səhifənizi göstərməlidir. curl -k əlavə etməyin: bu, sertifikat yoxlama xətasını gizlədir.
curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/Bu hələ sınaq quraşdırması ikən serverdə sudo reboot işlədin. Sistem qayıdanda deploy kimi qoşulun, systemctl is-active nginx yoxlayın və xarici HTTPS sorğusunu təkrarlayın. Reboot SSH sessiyalarını qəsdən bağlayır; maşın qayıtmasa, konsoldan istifadə edin.
Uğursuz yoxlamanı araşdırın və bərpanı hazırlayın
Kiçik ekranda bütün sütunları görmək üçün cədvəli üfüqi sürüşdürün.
| Əlamət | İlk yoxlamalar |
|---|---|
| SSH timeout | Ünvan, provayder və guest firewall, recovery console |
| Permission denied (publickey) | İstifadəçi, şəxsi açar və authorized_keys icazələri |
| Standart Nginx səhifəsi görünür | DNS hədəfi, server_name və aktiv sayt |
| Sertifikat yoxlaması keçmir | İctimai A/AAAA və 80-ci port |
| Dəyişiklikdən sonra Nginx işləmir | sudo nginx -t və sudo journalctl -u nginx -n 50 --no-pager |
Giriş alınmırsa, parametrləri dəyişməzdən əvvəl SSH diaqnostikası ilə şəbəkə, xidmət və açar problemini ayırın.
Sayt fayllarını, Nginx konfiqurasiyasını, DNS qeydlərini və yenidən qurma addımlarını VPS-dən kənarda saxlayın. Prosesi etibarlı saymazdan əvvəl başqa maşında bərpa edin. Sertifikatın şəxsi açarları nüsxələnirsə, qorunan saxlama yeri lazımdır. Əlçatanlıq və sertifikatın bitmə vaxtı üçün xəbərdarlıq qurun; bir uğurlu test sabahkı yenilənməni izləmir.
Fayl backup və bərpa məşqi mövcud saytı əvəz etmədən müstəqil nüsxəni yoxlayır. Tam bərpa üçün qalan assets, sertifikatlar və xidmət konfiqurasiyası da lazımdır. Bu sayt statik fayllardan ibarətdir; verilənlər bazası və runtime ayrıca xidmət və backup üsulu tələb edir. Onları əlavə edəndə resursları yenidən ölçün.
Tez-tez verilən suallar
Bu əmrləri işləyən saytda dərhal tətbiq edə bilərəm?
Bələdçi yeni boş server üçündür. Mövcud yolları, istifadəçiləri və xidmətləri yoxlayın; ehtiyat nüsxə və bərpa planı olmadan onları dəyişməyin.
Niyə yeni SSH bağlantısı açılır?
Açıq sessiya qala bilər, amma dəyişmiş qayda yeni girişi bloklaya bilər. Yeni bağlantını ayrıca sınamaq lazımdır.
Oracle-da UFW istifadə etməliyəm?
Bu bələdçinin UFW blokunu buraxın və Oracle obrazının sənədləşdirilmiş firewall qaydalarını qoruyun.