bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Як встановити та налаштувати веб-сервер на Cloud VPS у 2025...

calendar_month October 15, 2025 schedule 11 хв. читання visibility 637 переглядів
person
Valebyte Team
Як встановити та налаштувати веб-сервер на Cloud VPS у 2025...
summarize

TL;DR

  • Подключайтесь к VPS по SSH через порт 22, используя терминал или PuTTY для удаленного доступа к серверу.
  • Перед установкой Nginx обновите репозитории и пакеты ОС, чтобы избежать конфликтов и уязвимостей.
  • Используйте виртуальные хосты Nginx для эффективного управления несколькими доменами на одном сервере.
  • Проверяйте корректность конфигурации командой nginx -t перед каждой перезагрузкой веб-сервера.

Як встановити та налаштувати веб-сервер Nginx на Хмарний VPS: Покрокова інструкція

У цій статті ми детально розглянемо процес встановлення та налаштування веб-сервера Nginx на хмарному VPS хостингу. Ми пройдемо всі етапи, починаючи від підключення до сервера та оновлення системи, до налаштування віртуальних хостів і забезпечення безпеки. Незалежно від того, чи є ви системним адміністратором-початківцем, чи досвідченим розробником, ця інструкція допоможе вам швидко й ефективно налаштувати ваш веб-сервер для оптимальної роботи.

В рамках даної статті будуть розглянуті наступні теми:

  1. Підготовка сервера до встановлення Nginx
  2. Встановлення Nginx на VPS
  3. Основне налаштування Nginx і віртуальні хости
  4. Забезпечення безпеки Nginx
  5. Перевірка та налагодження роботи Nginx

Підготовка сервера до встановлення Nginx

Как установить и настроить веб-сервер на Cloud VPS? - Скриншот подключения к VPS через SSH.

Перш ніж приступати до встановлення Nginx, необхідно переконатися, що ваш сервер готовий до роботи. Це включає в себе підключення до сервера, оновлення списку пакетів і встановлення необхідних утиліт.

Підключення до VPS по SSH

Першим кроком є підключення до вашого VPS через SSH (Secure Shell). Для цього вам знадобиться SSH-клієнт, такий як PuTTY (для Windows) або вбудований термінал (для macOS і Linux). Вам знадобиться IP-адреса вашого сервера, ім'я користувача (зазвичай `root` або ім'я користувача, створене при налаштуванні сервера) і пароль.

Приклад команди для підключення через SSH (Linux/macOS):

ssh user@your_server_ip

Замініть `user` на ім'я користувача і `your_server_ip` на IP-адресу вашого сервера. Після введення команди вам буде запропоновано ввести пароль. Введіть пароль і натисніть Enter.

Приклад підключення через PuTTY (Windows):

  • Запустіть PuTTY.
  • У поле "Host Name (or IP address)" введіть IP-адресу вашого сервера.
  • Переконайтеся, що порт вказано як 22 (стандартний порт для SSH).
  • Натисніть кнопку "Open".
  • У вікні терміналу, що відкриється, введіть ім'я користувача і пароль.

Оновлення списку пакетів і встановлених пакетів

Після підключення до сервера, необхідно оновити список пакетів і встановлені пакети. Це дозволить переконатися, що у вас встановлені останні версії програмного забезпечення і що у вас є доступ до найсвіжіших версій Nginx.

Для Debian/Ubuntu:

sudo apt update
sudo apt upgrade

`sudo apt update` оновлює список доступних пакетів. `sudo apt upgrade` оновлює встановлені пакети до останніх версій. Рекомендується перезавантажити сервер після оновлення, якщо було оновлено ядро системи.

Для CentOS/RHEL/Fedora:

sudo yum update

Або, для новіших версій Fedora:

sudo dnf update

`sudo yum update` або `sudo dnf update` оновлюють всі встановлені пакети до останніх версій. Також може знадобитися перезавантаження сервера.

Встановлення необхідних утиліт

Для подальшої роботи з сервером і Nginx можуть знадобитися додаткові утиліти, такі як `nano` або `vim` (текстові редактори), `curl` або `wget` (для завантаження файлів), `unzip` (для розпакування архівів) та інші.

Приклад встановлення утиліт на Debian/Ubuntu:

sudo apt install nano curl wget unzip

Приклад встановлення утиліт на CentOS/RHEL/Fedora:

sudo yum install nano curl wget unzip

Встановіть ті утиліти, які вам знадобляться для роботи з сервером.

Експертна порада: Завжди оновлюйте систему перед встановленням нового програмного забезпечення. Це допоможе уникнути проблем із залежностями та забезпечить стабільну роботу вашого сервера.

Встановлення Nginx на VPS

Как установить и настроить веб-сервер на Cloud VPS? - Скриншот установки Nginx через терминал.

Після підготовки сервера можна приступати до встановлення Nginx. Процес встановлення Nginx залежить від використовуваної операційної системи.

Встановлення Nginx на Debian/Ubuntu

Для встановлення Nginx на Debian/Ubuntu використовуйте наступну команду:

sudo apt install nginx

Під час встановлення вам може бути запропоновано підтвердити встановлення. Введіть `y` і натисніть Enter.

Після завершення встановлення Nginx буде автоматично запущено. Щоб перевірити, що Nginx працює, відкрийте веб-браузер і перейдіть за IP-адресою вашого сервера. Ви повинні побачити стандартну сторінку привітання Nginx.

Приклад команди для перевірки статусу Nginx:

sudo systemctl status nginx

Ця команда покаже поточний статус Nginx (запущено або зупинено), а також останні логи.

Встановлення Nginx на CentOS/RHEL/Fedora

Для встановлення Nginx на CentOS/RHEL/Fedora використовуйте наступну команду:

sudo yum install nginx

Або, для новіших версій Fedora:

sudo dnf install nginx

Після встановлення необхідно запустити Nginx і включити його автоматичний запуск при завантаженні системи:

sudo systemctl start nginx
sudo systemctl enable nginx

`sudo systemctl start nginx` запускає Nginx. `sudo systemctl enable nginx` включає автоматичний запуск Nginx при завантаженні системи.

Як і у випадку з Debian/Ubuntu, ви можете перевірити статус Nginx за допомогою команди `sudo systemctl status nginx` і відкрити веб-браузер за IP-адресою вашого сервера, щоб побачити сторінку привітання Nginx.

Налаштування Firewall (брандмауера)

Після встановлення Nginx необхідно налаштувати firewall, щоб дозволити доступ до веб-сервера ззовні. За замовчуванням Nginx використовує порти 80 (HTTP) і 443 (HTTPS).

Для UFW (Uncomplicated Firewall) на Debian/Ubuntu:

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
sudo ufw enable

`sudo ufw allow 'Nginx HTTP'` дозволяє доступ до порту 80. `sudo ufw allow 'Nginx HTTPS'` дозволяє доступ до порту 443. `sudo ufw enable` включає firewall.

Для FirewallD на CentOS/RHEL/Fedora:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

`sudo firewall-cmd --permanent --add-service=http` дозволяє доступ до порту 80. `sudo firewall-cmd --permanent --add-service=https` дозволяє доступ до порту 443. `--permanent` робить зміни постійними після перезавантаження. `sudo firewall-cmd --reload` перезавантажує firewall, застосовуючи зміни.

Приклад команди для перевірки статусу FirewallD:

sudo firewall-cmd --list-all

Ця команда покаже поточні правила firewall.

Готові створити свій веб-сервер? Почніть з надійного VPS!

Ваш веб-сервер заслуговує на кращу основу. Оберіть ідеальний VPS для стабільної роботи. — від €4.49/міс.

Вибрати VPS-хостинг →
rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Основне налаштування Nginx і віртуальні хости

Після встановлення Nginx необхідно налаштувати його для роботи з вашими сайтами. Це включає в себе налаштування віртуальних хостів і основних параметрів Nginx.

Основні конфігураційні файли Nginx

Основний конфігураційний файл Nginx знаходиться за адресою `/etc/nginx/nginx.conf`. Цей файл містить загальні налаштування Nginx, такі як кількість робочих процесів, максимальна кількість з'єднань та інші параметри.

Конфігураційні файли віртуальних хостів знаходяться в каталозі `/etc/nginx/conf.d/` (на CentOS/RHEL/Fedora) або `/etc/nginx/sites-available/` і `/etc/nginx/sites-enabled/` (на Debian/Ubuntu). На Debian/Ubuntu в `/etc/nginx/sites-available/` зберігаються файли конфігурації віртуальних хостів, а в `/etc/nginx/sites-enabled/` знаходяться символічні посилання на файли з `/etc/nginx/sites-available/`, які визначають, які віртуальні хости активні.

Приклад структури каталогів на Debian/Ubuntu:

/etc/nginx/
├── nginx.conf  # Основний конфігураційний файл
├── sites-available/
│   └── default  # Приклад конфігураційного файлу віртуального хоста
├── sites-enabled/
│   └── default  # Символічне посилання на default з sites-available

Налаштування віртуального хоста

Віртуальний хост дозволяє запускати кілька сайтів на одному сервері. Для кожного сайту створюється окремий конфігураційний файл.

Приклад конфігураційного файлу віртуального хоста (Debian/Ubuntu):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    root /var/www/yourdomain.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Замініть `yourdomain.com` на ім'я вашого домену. `root /var/www/yourdomain.com` вказує на кореневий каталог сайту. `index index.html index.htm` визначає файли, які будуть використовуватися в якості головної сторінки. `location /` визначає, як Nginx обробляє запити до сайту.

Кроки для створення та активації віртуального хоста (Debian/Ubuntu):

  • Створіть файл конфігурації віртуального хоста: sudo nano /etc/nginx/sites-available/yourdomain.com
  • Вставте вміст прикладу конфігураційного файлу та замініть `yourdomain.com` на ваше доменне ім'я.
  • Створіть символічне посилання на цей файл в каталозі `/etc/nginx/sites-enabled/`: sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
  • Видаліть стандартний віртуальний хост: sudo rm /etc/nginx/sites-enabled/default
  • Перезапустіть Nginx: sudo systemctl restart nginx

Приклад конфігураційного файлу віртуального хоста (CentOS/RHEL/Fedora):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    root /usr/share/nginx/html/yourdomain.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Кроки для створення та активації віртуального хоста (CentOS/RHEL/Fedora):

  • Створіть файл конфігурації віртуального хоста: sudo nano /etc/nginx/conf.d/yourdomain.com.conf
  • Вставте вміст прикладу конфігураційного файлу та замініть `yourdomain.com` на ваше доменне ім'я.
  • Перезапустіть Nginx: sudo systemctl restart nginx

Тестування конфігурації Nginx

Перед перезапуском Nginx рекомендується перевірити конфігурацію на наявність помилок. Це можна зробити за допомогою наступної команди:

sudo nginx -t

Якщо в конфігурації є помилки, команда виведе повідомлення про помилку з вказівкою файлу і рядка, в якому вона знаходиться. Виправте помилки і повторіть перевірку.

Приклад успішного результату перевірки конфігурації:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Експертна порада: Використовуйте систему контролю версій (наприклад, Git) для зберігання конфігураційних файлів Nginx. Це дозволить вам легко відкочуватися до попередніх версій в разі виникнення проблем.

Забезпечення безпеки Nginx

Забезпечення безпеки Nginx є важливим аспектом налаштування веб-сервера. Це включає в себе налаштування SSL/TLS, обмеження доступу і захист від DDoS-атак.

Налаштування SSL/TLS за допомогою Let's Encrypt

SSL/TLS шифрування забезпечує безпечну передачу даних між сервером і клієнтом. Let's Encrypt — це безкоштовний центр сертифікації, який дозволяє отримати SSL/TLS сертифікати для вашого сайту.

Встановлення Certbot (клієнт Let's Encrypt):

Для Debian/Ubuntu:

sudo apt install certbot python3-certbot-nginx

Для CentOS/RHEL/Fedora:

sudo yum install certbot python3-certbot-nginx

Або, якщо yum не знаходить пакет:

sudo dnf install certbot python3-certbot-nginx

Отримання та встановлення SSL/TLS сертифіката:

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Замініть `yourdomain.com` на ім'я вашого домену. Certbot автоматично налаштує Nginx для використання SSL/TLS і налаштує автоматичне оновлення сертифіката.

Під час роботи Certbot вам буде запропоновано ввести адресу електронної пошти і прийняти умови використання. Також вам буде запропоновано перенаправляти HTTP-трафік на HTTPS. Рекомендується вибрати цей варіант для підвищення безпеки.

Обмеження доступу до адміністративних панелей

Якщо на вашому сервері встановлені адміністративні панелі (наприклад, phpMyAdmin), рекомендується обмежити доступ до них, щоб запобігти несанкціонованому доступу.

Приклад конфігурації Nginx для обмеження доступу до phpMyAdmin:

location /phpmyadmin {
    allow 192.168.1.0/24;  # Дозволити доступ тільки з локальної мережі
    allow 10.0.0.0/16;   # Дозволити доступ тільки з іншої локальної мережі
    deny all;          # Заборонити доступ всім іншим
}

Замініть `192.168.1.0/24` і `10.0.0.0/16` на діапазони IP-адрес, з яких ви хочете дозволити доступ. `deny all` забороняє доступ всім іншим IP-адресам.

Додайте цей блок в конфігураційний файл вашого віртуального хоста.

Захист від DDoS-атак

DDoS-атаки (Distributed Denial of Service) можуть вивести ваш сайт з ладу, перевантаживши сервер великою кількістю запитів. Для захисту від DDoS-атак можна використовувати різні методи, такі як обмеження кількості з'єднань з однієї IP-адреси і використання CDN (Content Delivery Network).

Приклад конфігурації Nginx для обмеження кількості з'єднань з однієї IP-адреси:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

server {
    ...
    location / {
        limit_req zone=mylimit burst=5 nodelay;
        ...
    }
}

`limit_req_zone` визначає зону для зберігання інформації про кількість запитів з кожної IP-адреси. `zone=mylimit:10m` створює зону з іменем `mylimit` і розміром 10 МБ. `rate=1r/s` обмежує кількість запитів до 1 в секунду. `limit_req zone=mylimit burst=5 nodelay` дозволяє клієнту відправити до 5 запитів в короткий проміжок часу (burst), перш ніж Nginx почне обмежувати запити. `nodelay` відключає затримку при перевищенні ліміту burst.

Альтернативні методи захисту від DDoS-атак:

  • Використання CDN: CDN розподіляє контент вашого сайту по декількох серверах, що дозволяє знизити навантаження на основний сервер і захиститися від DDoS-атак.
  • Використання брандмауера: Брандмауер може блокувати підозрілий трафік і захищати ваш сервер від DDoS-атак.
  • Регулярне оновлення програмного забезпечення: Регулярне оновлення програмного забезпечення дозволяє закривати відомі уразливості і підвищувати безпеку вашого сервера.

Зовнішнє посилання: Детальніше про безпеку Nginx можна дізнатися на сайті nginx.com.

Перевірка та налагодження роботи Nginx

Після встановлення та налаштування Nginx необхідно перевірити його роботу і переконатися, що все налаштовано правильно. Це включає в себе перевірку доступності сайту, перегляд логів і налагодження помилок.

Перевірка доступності сайту

Найпростіший спосіб перевірити доступність сайту - відкрити його у веб-браузері. Введіть ім'я вашого домену в адресний рядок і натисніть Enter. Якщо сайт відкривається, значить, Nginx працює правильно і налаштований вірно.

Якщо сайт не відкривається, перевірте наступне:

  • Правильність імені домену: Переконайтеся, що ви правильно ввели ім'я домену в адресний рядок.
  • Налаштування DNS: Переконайтеся, що DNS-записи вашого домену вказують на IP-адресу вашого сервера.
  • Налаштування firewall: Переконайтеся, що firewall дозволяє доступ до портів 80 і 443.
  • Статус Nginx: Переконайтеся, що Nginx запущений і працює правильно.
  • Конфігурація Nginx: Переконайтеся, що конфігурація Nginx налаштована вірно і не містить помилок.

Перегляд логів Nginx

Логи Nginx містять інформацію про запити до сайту і помилки, які виникають під час роботи Nginx. Логи можуть бути корисні для налагодження помилок і аналізу трафіку.

Основні логи Nginx:

  • /var/log/nginx/access.log: Містить інформацію про кожен запит до сайту.
  • /var/log/nginx/error.log: Містить інформацію про помилки, які виникають під час роботи Nginx.

Приклад перегляду логу помилок Nginx:

sudo tail -f /var/log/nginx/error.log

`sudo tail -f /var/log/nginx/error.log` виводить останні рядки файлу `/var/log/nginx/error.log` і оновлює вивід в режимі реального часу, показуючи нові помилки, що виникають під час роботи Nginx.

Приклад аналізу логу доступу Nginx за допомогою awk:

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

Ця команда виводить 10 IP-адрес, з яких надходить найбільша кількість запитів до вашого сайту. Вона використовує `awk` для вилучення IP-адреси ($1), `sort` для сортування IP-адрес, `uniq -c` для підрахунку кількості унікальних IP-адрес, `sort -nr` для сортування за кількістю запитів у зворотному порядку і `head -10` для виводу перших 10 рядків.

Налагодження помилок

Якщо ви виявили помилки в логах Nginx, необхідно їх налагодити. Для цього можна використовувати різні методи, такі як:

  • Перевірка конфігурації Nginx: Переконайтеся, що конфігурація Nginx налаштована вірно і не містить помилок.
  • Перевірка прав доступу: Переконайтеся, що у Nginx є права доступу до файлів і каталогів сайту.
  • Перевірка залежностей: Переконайтеся, що у вас встановлені всі необхідні залежності для роботи сайту.
  • Використання налагоджувача: Використовуйте налагоджувач для покрокового виконання коду і виявлення помилок.

Приклад поширеної помилки і її вирішення:

Помилка: 403 Forbidden.

Причина: У Nginx немає прав доступу до файлів сайту.

Рішення: Змініть права доступу до файлів сайту, надавши Nginx права на читання і виконання.

sudo chown -R www-data:www-data /var/www/yourdomain.com
sudo chmod -R 755 /var/www/yourdomain.com

Замініть `/var/www/yourdomain.com` на кореневий каталог вашого сайту. `www-data` - ім'я користувача і групи, від імені яких працює Nginx (на Debian/Ubuntu). На CentOS/RHEL/Fedora це зазвичай `nginx`. `chown` змінює власника і групу файлів. `chmod` змінює права доступу до файлів. `755` надає власнику права на читання, запис і виконання, а групі і іншим користувачам - права на читання і виконання.

Цитата: "Налагодження - це процес видалення дефектів, які були додані програмістом." - Edsger W. Dijkstra.

Масштабуйте свій веб-сервер: потужні хмарні інстанси чекають!

Потрібна максимальна гнучкість і продуктивність? Переходьте на хмарні інстанси для вашого веб-сервера.

Знайти хмарні інстанси →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.