Введите имя домена:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показать все домены

Настройка виртуальных хостов Nginx

Ответы на вопросы от компании «Украинский хостинг».

Настройка виртуальных хостов Nginx в CentOS 7

Для управления индивидуальными настройками отдельных сайтов Nginx использует блоки server, которые принято называть виртуальными хостами. Виртуальные хосты позволяют размещать несколько сайтов с разными конфигурациями на одном сервере. Перед выполнением инструкции, необходимо предварительно настроить веб-сервер Nginx или полный стек LEMP.

Так же рекомендуется создать не root пользователь с доступом к sudo.

В инструкции используется текстовый редактор nano, для установки которого требуется выполнить команду:

yum install nano
Перед выполнение основных команд необходимо подключиться к серверу по SSH.
Процедура настройки виртуальных хостов Nginx в CentOS 7 состоит из следующих шагов:

  1. Создаем структуру каталогов для хранения данных сайтов (далее вместо faq-website.ml и faq-websit2.ml необходимо указывать свое доменное имя):
    sudo mkdir -p /var/www/faq-website.ml/html
    sudo mkdir -p /var/www/faq-website2.ml/html
  2. Передаем права текущему пользователю, чтобы он мог изменять данные:
    sudo chown -R $USER:$USER /var/www/faq-website.ml/html
    sudo chown -R $USER:$USER /var/www/faq-website2.ml/html
    Переменная $USER автоматически задает имя текущего пользователя.
  3. Изменяем привилегии и открываем контент для чтения:
    sudo chmod -R 755 /var/www
  4. Создаем тестовую страницу index.html для первого сайта:
    nano /var/www/faq-website.ml/html/index.html
  5. Помещаем в нее следующий код:
    <html>
    <head>
    <title>Welcome to faq-website.ml! </head>
    <body>
    <h3>Welcome to faq-website.ml!</h3>
    </body>
    </html>
    </div>
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  6. Создаем тестовую страницу index.html для второго сайта:
    nano /var/www/faq-website2.ml/html/index.html
    Помещаем в нее следующий код:
    <html>
    <head>
    <title>Welcome to faq-website2.ml!</title>
    </head>
    <body>
    <h3>Welcome to faq-website2.ml!</h3>
    </body>
    </html>
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  7. Создаем каталог для хранения файлов хостов (sites-available), а также каталог, предоставляющий Nginx список хостов, которые нужно обслуживать (sites-enabled):
    sudo mkdir /etc/nginx/sites-available
    sudo mkdir /etc/nginx/sites-enabled
    Открываем главный конфигурационный файл Nginx:
    sudo nano /etc/nginx/nginx.conf
    И добавляем в конец блока http {} следующие строки:
    include /etc/nginx/sites-enabled/*.conf; server_names_hash_bucket_size 64;
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  8. Создаем конфигурационный файл для первого сайта:
    sudo nano /etc/nginx/sites-available/faq-website.ml.conf
    Помещаем в него следующий код:
    server {
    listen 80;
    server_name faq-website.ml www.faq-website.ml;
    location / {
    root /var/www/faq-website.ml/html;
    index index.html index.htm;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }
    }
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  9. Создаем конфигурационный файл для второго сайта:
    sudo nano /etc/nginx/sites-available/faq-website2.ml.conf
    Помещаем в него следующий код:
    server {
    listen 80;
    server_name faq-website2.ml www.faq-website2.ml;
    location / {
    root /var/www/faq-website2.ml/html;
    index index.html index.htm;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/html;
    }
    }
    Сохраняем изменение в файле, нажав сочетание клавиш Ctrl+x , затем клавишу y и затем клавишу Enter.
  10. Создаем символьную ссылку для каждого из блоков:
    sudo ln -s /etc/nginx/sites-available/faq-website.ml.conf /etc/nginx/sites-enabled/faq-website.ml.conf
    sudo ln -s /etc/nginx/sites-available/faq-website2.ml.conf /etc/nginx/sites-enabled/faq-website2.ml.conf
  11. Перезагружаем Nginx:
    sudo systemctl restart nginx
    Открываем сайты в браузере для проверки:

См.также: