Установка и настройка виртуальных хостов в Nginx позволяет обслуживать несколько сайтов на одном физическом сервере. Каждый сайт имеет свой собственный конфигурационный файл, который определяет, как Nginx должен обрабатывать входящие запросы. Ниже представлены основные шаги по установке Nginx и настройке виртуальных хостов на примере Ubuntu/Debian систем.
Установка Nginx
Установка и базовая конфигурация nginx описана в этой статье
Настройка Виртуальных Хостов
1. Создание Каталога для Сайта
Для каждого виртуального хоста рекомендуется создавать отдельный каталог в /var/www/
. Например, для сайта example.com
:
sudo mkdir -p /var/www/example.com/html
Установите правильные разрешения для каталога:
sudo chown -R $USER:$USER /var/www/example.com/html
- Установка правильных разрешений для каталогов и файлов на веб-сервере — ключевой аспект обеспечения безопасности и правильной работы веб-приложений. В контексте веб-сервера, такого как Nginx, обычно используются следующие настройки разрешений для каталогов и файлов:
Каталоги
- Для каталогов часто используются разрешения
755
(drwxr-xr-x
):
- Владелец может читать, писать и выполнять файлы в каталоге.
- Группа и другие пользователи могут читать и выполнять файлы, но не могут записывать.
- Это позволяет владельцу каталога создавать, удалять и изменять файлы внутри каталога, в то время как другие пользователи могут только просматривать содержимое и переходить по каталогам, что обеспечивает базовый уровень безопасности.
Файлы
- Для файлов обычно используются разрешения
644
(-rw-r--r--
):
- Владелец файла может читать и писать файл.
- Группа и другие пользователи могут только читать файл.
Эти разрешения предотвращают неавторизованную запись или изменение файлов другими пользователями системы, защищая таким образом содержимое веб-сайта.
Установка Разрешений
Подробнее про команду find можно прочитать тут.
Владелец и Группа
- Также важно установить правильного владельца и группу для файлов и каталогов. В контексте веб-серверов, часто файлы и каталоги принадлежат пользователю и группе, под которыми работает веб-сервер (например,
www-data
для Nginx на Debian и Ubuntu системах).
- Чтобы изменить владельца и группу для всех файлов и каталогов, используйте команду
chown
:
sudo chown -R www-data:www-data /var/www/example.com
- Эта команда установит пользователя
www-data
и группу www-data
в качестве владельца для всех файлов и каталогов в /var/www/example.com
.
2. Создание Тестовой Страницы
Создайте простую HTML-страницу, чтобы проверить, что виртуальный хост работает:
echo "<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The Example.com virtual host is working!</h1>
</body>
</html>" | sudo tee /var/www/example.com/html/index.html
3. Создание Конфигурационного Файла Виртуального Хоста
Перейдите в каталог /etc/nginx/sites-available/
и создайте конфигурационный файл для вашего сайта:
sudo nano /etc/nginx/sites-available/example.com
Добавьте в файл следующую конфигурацию:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Это базовая конфигурация, которая указывает Nginx обслуживать файлы из /var/www/example.com/html
для домена example.com
и www.example.com
.
4. Активация Виртуального Хоста
Создайте символическую ссылку на ваш конфигурационный файл в каталоге /etc/nginx/sites-enabled/
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
5. Проверка Конфигурации Nginx
Перед перезапуском Nginx убедитесь, что нет синтаксических ошибок:
sudo nginx -t
Если вы видите сообщение об успешной проверке, перезагрузите Nginx, чтобы применить изменения:
sudo systemctl reload nginx
Заключение
Теперь у вас должен быть настроен виртуальный хост в Nginx для обслуживания вашего сайта. Вы можете повторить процесс для каждого нового сайта, создавая отдельный конфигурационный файл в /etc/nginx/sites-available/
и активируя его через символическую ссылку в /etc/nginx/sites-enabled/
. Это позволит легко управлять несколькими сайтами на одном сервере.