Вступ
Rocky Linux 9 є стабільною та надійною операційною системою, чудовою для веб-серверів. Nginx — це продуктивний веб-сервер із відкритим кодом, який широко використовується для розміщення як статичного, так і динамічного контенту. У цьому керівництві ми детально розглянемо процес налаштування віртуальних хостів Nginx на Rocky Linux 9.
Що таке віртуальні хости Nginx?
Віртуальні хости Nginx, також відомі як блоки серверів, дозволяють вам розміщувати кілька веб-сайтів на одному сервері Nginx. Кожен віртуальний хост має індивідуальні налаштування, включаючи доменне ім’я, кореневий каталог і порти. Це спрощує керування різними веб-сайтами з єдиного екземпляра Nginx.
Крок 1: Інсталяція Nginx на Rocky Linux 9
Перший крок — це встановлення Nginx на ваш сервер Rocky Linux 9. Скористайтеся наступною командою:
sudo dnf install nginx
Після завершення інсталяції Nginx автоматично запуститься. Щоб перевірити його працездатність, виконайте команду:
sudo systemctl status nginx
Крок 2: Конфігурація віртуальних хостів Nginx
Після інсталяції Nginx нам потрібно налаштувати віртуальні хости. Конфігураційні файли Nginx зберігаються у директорії /etc/nginx/
. Для конфігурації віртуальних хостів ми будемо використовувати каталог /etc/nginx/conf.d/
.
Створення конфігураційного файлу
Створіть новий конфігураційний файл для кожного віртуального хоста, який вам потрібен. Наприклад, для сайту example.com
, ми можемо створити файл /etc/nginx/conf.d/example.com.conf
:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
У цьому прикладі:
listen 80;
— визначає порт, на якому сервер буде очікувати на запити.server_name example.com www.example.com;
— вказує доменне ім’я сайту.root /var/www/example.com/public_html;
— задає шлях до кореневого каталогу сайту.index index.html index.htm index.php;
— визначає файли, які будуть обслуговуватись за замовчуванням.location / {}
— визначає правила для обробки запитів до кореневого каталогу.location ~ \.php$ {}
— визначає правила для обробки запитів до PHP-файлів.
Тестування та перезапуск Nginx
Після конфігурації віртуальних хостів, перевірте налаштування на помилки:
sudo nginx -t
Якщо все гаразд, перезапустіть Nginx:
sudo systemctl restart nginx
Крок 3: Налаштування доменів в DNS
Після налаштування Nginx потрібно налаштувати DNS-записи для ваших доменів. Це дозволить користувачам отримати доступ до ваших сайтів за допомогою їхніх доменних імен.
Налаштування A-записів
Створіть A-записи для кожного домену, який ви бажаєте обслуговувати. A-записи пов’язують доменне ім’я з IP-адресою вашого сервера.
Крок 4: Перевірка налаштувань
Після налаштування DNS-записів переконайтеся, що ваші веб-сайти доступні за відповідними доменними іменами.
Висновок
У цій статті ми розглянули процес налаштування віртуальних хостів Nginx на Rocky Linux 9. Використовуючи віртуальні хости, ви можете легко керувати різними веб-сайтами з одного сервера Nginx, що дає змогу ефективно використовувати ресурси та спрощувати адміністрування.
Налаштування віртуальних хостів Nginx — це лише один крок у створенні надійного та функціонального веб-сервера. Важливо також дбати про безпеку, масштабованість, доступність сервера та правильну конфігурацію DNS-записів і кешування.
FAQ
1. Як налаштувати SSL-сертифікат для віртуального хоста Nginx?
Для налаштування SSL-сертифіката необхідно отримати його від надійного центру сертифікації, а потім інсталювати на ваш Nginx-сервер. Можна використовувати такі інструменти, як Let’s Encrypt, для автоматизації цього процесу.
2. Як використовувати нестандартний порт з віртуальними хостами Nginx?
Щоб використовувати нестандартний порт, змініть значення listen
у конфігураційному файлі віртуального хоста. Наприклад:
server {
listen 8080;
інші параметри ...
}
3. Як налаштувати кешування для віртуальних хостів Nginx?
Nginx має вбудовані можливості кешування, які можна використовувати для підвищення продуктивності. Можна налаштувати кеш для статичного контенту, такого як зображення та CSS-файли, за допомогою директиви location
в конфігураційному файлі віртуального хоста.
4. Як налаштувати Nginx для роботи з PHP-fpm?
Для обробки динамічного контенту за допомогою PHP, потрібно встановити і налаштувати PHP-fpm, а потім інтегрувати його з Nginx. Це включає налаштування віртуального хоста для обробки PHP-запитів та конфігурацію PHP-fpm для взаємодії з Nginx.
5. Чи можна використовувати віртуальні хости Nginx для обслуговування API?
Так, віртуальні хости Nginx можуть використовуватися для обслуговування API. Необхідно налаштувати Nginx для обробки запитів до API та їх проксування до сервера API.
6. Як додати віртуальний хост до існуючого сервера Nginx?
Створіть новий конфігураційний файл для віртуального хоста, як описано вище, і додайте його до каталогу /etc/nginx/conf.d/
. Після цього перевірте конфігурацію і перезапустіть Nginx.
7. Як налаштувати доступ до віртуального хоста за допомогою субдомену?
Створіть конфігураційний файл віртуального хоста для субдомену, вказавши його ім’я в параметрі server_name
. Також налаштуйте DNS-записи для субдомену, щоб вони вказували на ваш сервер.
8. Як налаштувати Nginx для обслуговування статичного контенту з CDN?
Можна скористатися директивою location
в конфігураційному файлі віртуального хоста, щоб перенаправити запити до статичного контенту на CDN.
9. Як налаштувати Nginx для розміщення різних веб-сайтів на різних портах?
Визначте різні порти для кожного віртуального хоста, використовуючи параметр listen
. Наприклад, для сайту example.com
можна використовувати порт 80, а для example.net
— порт 8080.
10. Як використовувати директиву try_files
в Nginx?
Директива try_files
дає змогу Nginx перевірити існування файлу або каталогу за заданим шляхом. Якщо файл або каталог не знайдено, Nginx може перенаправити запит на інший URL, виконати інше завдання або повернути помилку.
Теги: Nginx, Rocky Linux 9, веб-сервер, віртуальний хост, блоки серверів, конфігурація, DNS, SSL, PHP-fpm, CDN, API, безпека, масштабованість, доступність, кешування.