Техникийн заавар / Ubuntu VPS тохируулах

Ubuntu VPS тохируулах

Шинэ Ubuntu 24.04 LTS VPS дээр SSH түлхүүр, тусдаа администратор, Nginx, DNS болон HTTPS-ийг дарааллаар нь бэлтгэж, жижиг статик сайт нийтлэх жишээ. Энэ заавар нь шинэ серверт зориулагдсан: ажиллаж буй систем дээр командыг шууд хуулж ажиллуулахгүй.

· Шалгасан: · Англи эхтэй уялдуулсан орчуулга

Агуулга

Сервер, домэйн ба сэргээх хандалтыг бэлтгэх

Үйлчилгээ үзүүлэгчийн консол, IP, домэйн удирдлага болон сэргээх замыг эхлээд шалга. Ubuntu 24.04 LTS image болон CPU архитектурыг баталгаажуул. Энэ жишээ зөвхөн шинэ instance-д хамаарна.

VM үүсгэхээс өмнө SSH түлхүүр бэлтгэх

Түлхүүрийг өөрийн компьютер дээр үүсгэнэ. Public key-г үйлчилгээ үзүүлэгчийн console-д нэм, private key-г хэзээ ч серверийн вэб каталогт эсвэл GitHub-д байрлуулахгүй.

Шинэ түлхүүрээр нэвтрэхийг туршиж байж хуучин аргаа хаана.

mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pub
scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pub
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
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pub

Тусдаа администратор үүсгэж турших

Root-ээр өдөр тутмын ажил хийхийн оронд sudo эрхтэй тусдаа хэрэглэгч бэлтгэ. Шинэ хэрэглэгчийн SSH холболтыг өөр терминалаар туршиж, одоогийн ажиллаж буй session-ийг хадгал.

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
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10
sudo whoami

Nginx суулгах ба firewall-ийг зөв удирдах

Ubuntu image-ийн идэвхтэй сүлжээний систем, cloud firewall болон UFW ашиглаж буй эсэхийг шалга. SSH нэвтрэлт таслахгүйгээр зөвхөн шаардлагатай порт нээнэ. Нэг дор олон firewall өөрчилж болохгүй.

sudo apt install nginx
sudo systemctl enable --now nginx
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

Бие даасан Nginx сайт нийтлэх

Туршилтын HTML-ийг зориулалтын каталогт хийж, Nginx-ийн тусдаа server block ашигла. Эхлээд config syntax шалгаад reload хий. Ажиллаж буй бусад virtual host-уудыг дарж бичихгүй.

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
sudo systemctl reload nginx
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/

DNS холбож HTTPS сертификат авах

Өөрийн удирддаг домэйны A/AAAA бичлэгийг зөв IP рүү чиглүүлж, HTTP хариу гадаадаас очиж буйг шалга. Үүний дараа HTTPS сертификат болон автомат сунгалтыг тохируул.

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

Гадаадаас болон reboot-ийн дараа шалгах

HTTPS хариу, TLS хугацаа, DNS, Nginx төлөв, 301 чиглүүлэлт, статик файл, шаардлагатай порт болон сервер дахин ачаалсны дараах байдалтай тулга.

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

Шалгалт амжилтгүй болвол өөрчлөлтөө зогсоох

Nginx error log, DNS, сүлжээний бодлого, сертификат болон файл эрхийг тус тус шалга. Хэрэв шинэ тохиргоо өмнөх үйлчилгээнд сөргөөр нөлөөлбөл ажилладаг хувилбар руу буц. Нууц түлхүүрийг алдааны тайланд бүү хавсарга.

Түгээмэл асуулт

Эдгээр командыг ажиллаж буй сервер дээр шууд ажиллуулах уу?

Үгүй. Энэ нь шинэ Ubuntu 24.04 instance-д зориулсан жишээ. Өмнөх тохиргоо, нөөц хуулбар, эрх, аюулгүй байдлыг эхлээд шалга.

HTTPS ажиллаж эхэлбэл дууссан уу?

Үгүй. DNS, redirect, сертификат сунгалт, алсаас хандах боломж болон дахин ачаалсны дараах төлөвийг шалгах хэрэгтэй.

Эх сурвалж ба баталгаажуулалт

Техникийн алхмууд болон командуудыг англи эх хувилбартай тулгана. Үйлчилгээ үзүүлэгчийн нөхцөл өөрчлөгдөж болох тул үйлдэхээсээ өмнө шинэ мэдээллийг шалга.

Холбогдох зааврууд