Практическо ръководство / Първи сайт

Настройка на Ubuntu VPS за първия ви HTTPS сайт

Тази настройка на Ubuntu VPS е за нов Ubuntu 24.04 LTS сървър и малък статичен сайт с Nginx и HTTPS. Ще създадете отделен администратор, ще проверите SSH ключа, сертификата и връщането на сайта след рестарт.

· Обновено: · Около 4 минути за четене

Съдържание

Подгответе нова машина, домейн и възстановяване

Нужни са нов тестов Ubuntu 24.04 VPS, публичен IPv4, SSH на порт 22, начална сметка със sudo и домейн под ваш контрол. Локалните команди са за Bash на Linux, macOS или WSL. Командите за сървъра се изпълняват след SSH вход. Ако примерните пътища вече принадлежат на работещ сайт, спрете.

Навсякъде заменете 203.0.113.10 с адреса на VPS и app.example.com с вашето име. Началният потребител ubuntu трябва да съответства на образа на доставчика. Отворете конзолата за възстановяване преди промени по достъпа и мрежата. За Oracle Cloud има отделно правило: не използвайте UFW.

Подгответе ключа и проверете първата връзка

На компютъра си създайте отделен ключ с парола. Ако името съществува, използвайте друго навсякъде. Частният файл остава на компютъра.

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

Сега създайте новия Ubuntu 24.04 сървър с публичния .pub ключ в полето за SSH ключ. Тази инструкция следва пътя за нова машина, а не промяна на достъп до вече работещ сървър.

Преди първия вход сравнете хост отпечатъка с публичния хост ключ в доверената конзола за възстановяване. За Ed25519 изпълнете там:

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

От компютъра отворете SSH връзка. Приемете хост ключа само след съвпадение:

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

Създайте отделен администратор

На сървъра проверете getent passwd deploy. Не трябва да се връща съществуващ потребител. Ако името е заето, изберете ново и заменете името, групата и домашните пътища навсякъде, преди да продължите.

Проверете образа и ресурсите, прегледайте обновяванията и създайте администратора. Задайте силна парола за неговите sudo заявки. Командите задават собствеността и ограничават достъпа до ключовия файл.

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. След правилната парола трябва да се изпише root. Продължете там, като запазите първоначалния достъп.

sudo whoami

Инсталирайте Nginx и подходящата защитна стена

На сървъра инсталирайте Nginx. Запазете конзолата и работещата SSH сесия, докато променяте мрежови правила.

sudo apt install nginx
sudo systemctl enable --now nginx

При доставчика разрешете TCP 22 от мястото за администрация и TCP 80/443 за посетителите. Ако SSH е на друг порт, запазете реалния порт. Мрежовото разрешение не отменя забрана вътре в гостовата система.

Oracle Cloud Ubuntu: пропуснете целия блок UFW. Той може да наруши важни правила на образа и да попречи на зареждането. Запазете iptables и правилата за iSCSI дисковете. Използвайте OCI списъците за сигурност или NSG и документираните правила на гостовата система за HTTP/HTTPS. Не изчиствайте правилата и не заменяйте пакетите на защитната стена.

Друг нов Ubuntu образ: използвайте UFW само когато доставчикът го поддържа и няма друга задължителна конфигурация. Разрешете реалния SSH порт преди включване; примерът приема 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

След избрания път проверете ново SSH влизане. Вече отворена сесия не проверява нова връзка. Проверете и външния HTTP достъп преди издаване на сертификат.

Публикувайте отделен Nginx сайт

На сървъра създайте нова папка и конфигурация. Заменете името на домейна в блока. Запазете кавичките около EOF, за да не се разширява променливата $uri от обвивката. Английският текст в примерния HTML е тестовото съдържание на оригиналната команда.

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

Презаредете само ако nginx -t е успешен:

sudo systemctl reload nginx

От компютъра направете заявка към домейна на точния IP преди промяна на DNS. Очаквайте примерното заглавие, не стандартната страница на Nginx.

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

Свържете DNS и издайте HTTPS сертификат

Добавете A запис към IPv4 на сървъра. Добавяйте AAAA само при работещ IPv6: стар запис може да изпрати посетителите и проверката за сертификат другаде. Примерът използва директен DNS, без прокси.

От компютъра проверете http://app.example.com/ без --resolve. Продължете, когато виждате вашата страница. На сървъра инсталирайте Certbot и Nginx модула от Ubuntu. Пакетите изискват Universe; отстранете грешка за липсващ пакет преди следваща стъпка.

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

Следвайте въпросите за имейл и условията. Certbot променя конфигурацията и добавя пренасочване към HTTPS. Проверете таймера за подновяване; ако е неактивен, включете го с sudo systemctl enable --now certbot.timer. Порт 80 трябва да остане достъпен за HTTP проверката и подновяването.

Проверете отвън и след рестарт

На компютъра проверете пренасочването, сертификата и съдържанието. Не добавяйте -k към curl: това прикрива неуспешна проверка на сертификата.

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

Докато средата е тестова, изпълнете sudo reboot на сървъра. След връщането се свържете като deploy, проверете systemctl is-active nginx и повторете външната HTTPS заявка. Рестартът затваря SSH; при проблем използвайте конзолата.

Отстранете точната грешка и запазете копие

На малък екран плъзнете таблицата настрани, за да видите всички колони.

СимптомПърво проверете
SSH timeoutАдрес, мрежови правила и конзола
Permission denied (publickey)Потребител, ключ и права на authorized_keys
Стандартна Nginx страницаDNS, server_name и активния сайт
Неуспешен сертификатA/AAAA и публичен порт 80
Nginx не приема промянаnginx -t и журнала на услугата

При неуспешно влизане използвайте диагностиката на SSH. Съхранете файловете, конфигурацията, DNS записите и стъпките извън VPS. Добавете наблюдение за достъпност и изтичане на сертификата.

Проверете възстановяването на независимо файлово копие. То не включва автоматично сертификати, база данни или цяла машина. За приложение със собствена среда за изпълнение планирайте услугите, данните и ресурсите отделно.

Процедура от EN за нов Ubuntu 24.04 VPS, директен DNS и SSH на порт 22. Следвайте защитната стена за конкретния образ; OCI Ubuntu трябва да пропусне UFW. Не е заявено изпитване при всеки доставчик.

Често задавани въпроси

Мога ли да изпълня командите върху работещ сайт?

Първо използвайте отделен тестов VPS. Командите създават файлове и променят Nginx и мрежови правила; действаща система изисква собствен преглед и план за възстановяване.

Инсталира ли се база данни или WordPress?

Не. Получавате статичен HTTPS сайт. Добавете приложението отделно и проверете старта, състоянието и възстановяването на неговите данни.

Следващи полезни стъпки

1 / Практическо ръководство

Ubuntu VPS за вашия проект

Изберете Ubuntu VPS според приложението, паметта, диска и поддръжката. Сравнете общата цена и проверете възстановяването преди поръчка.

Прочетете ръководството ↗
2 / Практическо ръководство

Ubuntu образ за VPS: изберете и проверете средата

Изберете Ubuntu образ за VPS според приложението. Проверете версията, архитектурата, cloud-init и пакетите преди инсталация или надграждане.

Прочетете ръководството ↗
3 / Практическо ръководство

Проблеми със SSH: проверете точната грешка

Открийте причината за проблеми със SSH на Ubuntu VPS: изтекло време, отказана връзка или ключ. Запазете работещия достъп и проверете сървъра.

Прочетете ръководството ↗
4 / Практическо ръководство

Архивиране на VPS: възстановете проверено копие

Упражнете архивиране на VPS с tar, SSH и SHA-256. Копирайте два статични файла на друг компютър и ги възстановете, без да променяте работещия сайт.

Прочетете ръководството ↗

Изберете ресурси с план за възстановяване.

Сравнете офертата с приложението и актуалните условия на доставчика.

Разгледайте сървърите

Партньорска връзка · Проверете офертата преди поръчка.