Настройка виртуальных хостов nginx centos
Обновлено: 21.11.2024
Nginx — отличная альтернатива Apache, которая в последнее время набирает популярность. Хотя известно, что Nginx является веб-сервером с меньшим количеством модулей/надстроек и более сложными настройками, чем у apache, но если вы размещаете один веб-сайт, который хотите работать с высокой скоростью, то Nginx подходит именно вам. В этом руководстве подробно описан процесс установки сервера nginx, но давайте сначала кратко обсудим nginx.
Nginx — это открытый исходный код, который, как известно, решает некоторые проблемы, связанные с производительностью, которые есть у apache. Он использует дизайн, управляемый событиями, в отличие от дизайна, управляемого процессами, используемого apache, который замедляет работу apache при больших нагрузках, поскольку ему необходимо создавать новые процессы, что приводит к увеличению потребления памяти. Рабочие процессы можно настроить для Nginx (каждый рабочий процесс равен одному процессору), и каждый рабочий процесс может обрабатывать тысячи одновременных подключений.
В этом руководстве мы научимся устанавливать сервер Nginx, но прежде чем мы перейдем к установке сервера Nginx, нам необходимо выполнить следующие шаги.
1- Удалить Apache
Если вы используете старую установку на сервере apache, удалите ее, поскольку и nginx, и apache используют одни и те же порты, то есть 80 и 443. Чтобы удалить apache
2- Запись для нашего виртуального хоста в /etc/hosts
3- Включены репозитории Epel или Nginx
Поскольку Nginx доступен с репозиториями RHEL/CentOS по умолчанию, нам нужно либо включить официальный репозиторий Nginx, либо репозиторий Epel
Репозиторий Nginx
Чтобы включить репозиторий Nginx, создайте файл с именем «nginx.repo» в «/etc/yum.repos.d» и добавьте следующую информацию о репозитории
Замените «OS» на «rhel» или «centos» в зависимости от используемого дистрибутива, а «OSRELEASE» на «5», «6» или «7» для 5.x, 6.x или 7.x соответственно.
Репозиторий Epel
RHEL/CentOS 8
RHEL/CentOS 7
RHEL/CentOS 6 (64-разрядная версия)
RHEL/CentOS 6 (32-разрядная версия)
Установить сервер Nginx
После включения репозитория Nginx/Epel можно легко выполнить установку с помощью yum. Чтобы установить сервер nginx, запустите
Теперь запустите службу nginx, а также включите ее после перезагрузки,
Мы также можем проверить установку, открыв веб-браузер и введя IP-адрес/полное доменное имя нашего сервера
& откроется тестовая страница.
Настройка виртуальных хостов (блоков серверов)
& предоставить необходимые разрешения, например 755, для всех каталогов, созданных в /var/www
Далее создайте файл index.html для приветствия пользователей веб-сайта,
Сохраните файл и закройте его. Наконец, перезапустите службы nginx, чтобы изменения, внесенные в файл конфигурации, вступили в силу.
Примечание. Если нам нужно создать более одного виртуального хоста, повторите тот же процесс. Создайте корневой каталог документа, поместите в него файлы веб-сайта, создайте для него запись в virtual.conf и перезапустите службы.
На этом мы завершаем наше руководство по установке сервера nginx. Пожалуйста, не стесняйтесь упоминать свои запросы/вопросы в поле для комментариев ниже.
Если вы считаете, что мы помогли вам или просто хотите поддержать нас, обратите внимание на следующее: -
Серверные блоки, часто называемые виртуальным хостом Nginx, — это функция веб-сервера Nginx, позволяющая размещать несколько веб-сайтов на одном сервере. В отличие от установки и настройки сервера для каждого домена, размещение нескольких веб-сайтов на одном компьютере экономит время и деньги.
Домены изолированы и независимы, каждый из них имеет отдельный:
- Каталог документации сайта
- Политика безопасности веб-сайта
- SSL-сертификат
В этом руководстве вы узнаете, как настроить серверные блоки Nginx и настроить локальный файл хоста в CentOS 7.
- Самоуправляемый сервер CentOS или виртуальная машина
- Nginx установлен в системе
- Пользователь с правами sudo
Примечание. Если у вас нет веб-сервера Nginx, обратитесь к нашим руководствам по установке и настройке Nginx в CentOS 7 или по установке и настройке Nginx в CentOS 8.
Настройка блоков виртуального хоста/сервера в CentOS
Шаг 1. Создайте структуру каталогов
Виртуальный хост Nginx может поддерживать несколько веб-сайтов на одном компьютере. Поскольку каждый веб-сайт имеет отдельную документацию, вам необходимо создать отдельные структуры каталогов для хранения данных.
Каждый серверный блок должен иметь каталог внутри корня документа (каталог /var/www).
<р>1. Начните с использования следующей команды для создания папки внутри каталога /var/www с помощью команды: <р>2. Затем создайте его для второго веб-сайта, набрав:<р>3. Затем измените владельца файлов, чтобы другие пользователи могли добавлять, удалять или изменять файлы в каталогах. В результате оба каталога будут принадлежать пользователю, под которым вы вошли.
<р>5. Повторите процесс для второго веб-каталога (не забудьте изменить имя домена), набрав: <р>6. Наконец, предоставьте разрешение на чтение всем файлам в каталоге /var/www с помощью команды chmod:
Шаг 2. Создайте демонстрационную страницу для виртуального хоста
Следующим шагом является создание содержимого, которое вы хотите отображать на веб-сайтах, размещенных на блоках сервера Nginx. Самый простой способ проиллюстрировать этот процесс — создать страницу index.html для двух ранее упомянутых доменов.
<р>1. Используйте текстовый редактор Linux по вашему выбору, чтобы создать и открыть файл index.html для первого веб-сайта. В этом примере мы использовали Vi (но подойдет и Nano или любой другой): <р>2. Когда откроется пустая страница Vi, нажмите i (для вставки) и добавьте следующее содержимое:<р>3. Затем сохраните и закройте первый файл.
<р>4. Повторите шаги для второго домена. Но не забудьте изменить имя файла на website2:Кроме того, добавьте контент, аналогичный предыдущему шагу, но измените особенности, чтобы они соответствовали второму домену:
Снова сохраните и закройте файл.
Шаг 3. Настройка среды для файлов блоков сервера
Прежде чем мы настроим виртуальные хосты для двух доменов, нам нужно создать два каталога:
- Каталог, доступный для сайтов, для хранения серверных блоков.
- Каталог с поддержкой сайтов, который сообщит Nginx, какие ссылки публиковать, а какие заблокировать общий доступ к содержимому для посетителей.
<р>2. Затем откройте файл конфигурации Nginx и измените его, добавив каталог с поддержкой сайтов:
Первая строка указывает Nginx проверять каталог с поддержкой сайтов, а вторая увеличивает объем памяти, зарезервированный для проверки нескольких доменных имен.
<р>4. Сохраните файл и выйдите. <р>5. Проверьте файл конфигурации Nginx после внесения любых изменений, чтобы убедиться в правильности синтаксиса. Это поможет избежать возможных ошибок в будущем.Проверьте файл с помощью следующей команды:
Если с синтаксисом все в порядке, в выводе будет указано, что тест прошел успешно, как показано на изображении ниже.
Однако, если обнаруживается проблема в синтаксисе, в выходных данных указывается, где ошибка и как вернуться и исправить ее.
Шаг 4. Создайте файлы блоков сервера
Пакет веб-сервера Nginx поставляется с блоком сервера по умолчанию под названием default.conf. Поскольку вам нужно создать серверные блоки для каждого домена, проще всего будет скопировать существующий шаблон и изменить спецификации.
<р>1. Создайте виртуальный хост для первого веб-сайта с помощью команды cp, чтобы сделать точную копию файла: <р>2. Откройте клонированный файл в текстовом редакторе с помощью следующей команды:Содержимое файла должно выглядеть так, как показано на изображении ниже:
<р>3. В файле нужно отредактировать три (3) строки:
Поэтому в нашем примере server_name будет таким:
Не забудьте сохранить файл перед выходом. После внесения всех изменений файл конфигурации будет выглядеть следующим образом:
Это включает в себя копирование файла конфигурации по умолчанию с помощью команды:
После открытия файла в текстовом редакторе:
Редактируйте содержимое следующим образом:
Шаг 5. Включите файлы блокировки сервера
Чтобы включить файлы виртуального хоста, создайте символические ссылки в каталогах с поддержкой сайтов с помощью команд:
Чтобы изменения вступили в силу, обязательно перезапустите Nginx:
Шаг 6. Настройка файла хоста
Если вы использовали примеры доменов вместо действующих, измените файл hosts, чтобы перенаправлять запросы на созданный вами виртуальный частный сервер (VPS).
<р>1. Откройте хост-файл в текстовом редакторе: <р>2. Отредактируйте следующие две строки под существующим содержимым, указав при этом IP-адрес VPS: <р>3. Сохраните и закройте файл.Шаг 7. Проверка установки серверных блоков
Чтобы проверить настройку серверных блоков, перейдите на веб-сайты, которые вы создали для размещения на серверных блоках.
Откройте браузер и введите URL-адрес первого домена:
Вы должны увидеть контент, созданный для демонстрационной страницы на шаге 2.
Прочитав эту статью, вы должны понять основные принципы установки и настройки серверных блоков Nginx для размещения нескольких доменов в CentOS.
Несмотря на то, что Nginx прост в использовании, он имеет ограниченное количество функций. Если вам требуется больше от вашего веб-сервера, вы можете рассмотреть возможность установки Apache на CentOS 7.
Nginx — один из самых популярных веб-серверов в мире. На нем размещаются одни из самых крупных и посещаемых сайтов в Интернете. В большинстве случаев Nginx легче и масштабируемее, чем Apache, и может использоваться в качестве веб-сервера или обратного прокси-сервера.
Nginx использует серверные блоки для управления конфигурациями отдельного сайта или домена. Блоки серверов позволяют одному серверу размещать несколько доменов или интерфейсов с помощью соответствующей системы. Это актуально для всех, кто хочет разместить более одного сайта на одном VPS.
Каждый настроенный домен будет направлять посетителя в определенный каталог, содержащий информацию об этом сайте, даже не указывая, что тот же сервер также отвечает за другие сайты. Эту схему можно расширить без каких-либо программных ограничений, если ваш сервер может обрабатывать трафик, который привлекают все сайты.
В этом руководстве мы рассмотрим, как настроить серверные блоки Nginx на CentOS 7 VPS. В ходе этого процесса вы узнаете, как предоставлять разный контент разным посетителям в зависимости от того, какие домены они запрашивают.
Предпосылки
Прежде чем приступить к работе с этим руководством, необходимо выполнить несколько шагов.
Вам потребуется доступ к серверу CentOS 7 от пользователя без полномочий root с привилегиями sudo. Если вы еще не настроили это, вы можете запустить руководство по начальной настройке сервера CentOS 7, чтобы создать эту учетную запись.
Вам также потребуется установить Nginx, чтобы настроить для него серверные блоки. Если вам нужен полный стек LEMP (Linux, Nginx, MySQL и PHP) на вашем сервере, вы можете следовать нашему руководству по настройке стека LEMP в CentOS 7. Если вам нужен только Nginx, вы можете установить его через репозиторий Nginx yum. :
Сначала добавьте репозиторий Nginx в список источников программного обеспечения вашего сервера.
Теперь вы можете использовать yum для загрузки и установки Nginx.
После выполнения этих шагов войдите в систему под своей учетной записью пользователя без полномочий root через SSH и продолжите обучение.
Если у вас нет реальных доменов, с которыми можно поиграться, мы покажем вам, как протестировать конфигурацию блока сервера с фиктивными значениями ближе к концу руководства.
Шаг первый — создание структуры каталогов
Во-первых, нам нужно создать структуру каталогов, в которой будут храниться данные сайта для обслуживания посетителей.
Наш корневой каталог документа (каталог верхнего уровня, который Nginx просматривает для поиска контента для обслуживания) будет установлен в отдельные каталоги в каталоге /var/www. Здесь мы создадим каталог для каждого из серверных блоков, которые мы планируем создать.
В каждом из этих каталогов мы создадим каталог html, в котором будут храниться наши файлы. Это дает нам некоторую гибкость при выборе хостинга.
Мы можем создать эти каталоги с помощью команды mkdir (с флагом -p, который позволяет нам создать папку с вложенной папкой внутри):
Помните, что части, выделенные красным цветом, представляют собой доменные имена, которые мы хотим обслуживать с нашего VPS.
Предоставить разрешения
Теперь у нас есть структура каталогов для наших файлов, но они принадлежат нашему пользователю root. Если мы хотим, чтобы наш обычный пользователь мог изменять файлы в наших веб-каталогах, мы можем изменить владельца с помощью chown :
Переменная $USER примет значение пользователя, под которым вы в данный момент вошли, как при отправке команды. Сделав это, наш обычный пользователь теперь владеет подкаталогами public_html, где мы будем хранить наш контент.
Мы также должны немного изменить наши разрешения, чтобы обеспечить доступ для чтения к общему веб-каталогу, а также ко всем файлам и папкам внутри, чтобы страницы могли обслуживаться правильно:
Теперь ваш веб-сервер должен иметь разрешения, необходимые для обслуживания контента, и ваш пользователь должен иметь возможность создавать контент в соответствующих папках.
Шаг второй — создание демонстрационных страниц для каждого сайта
Теперь, когда у нас есть структура каталогов, давайте создадим некоторый контент для обслуживания.
Поскольку это только для демонстрации и тестирования, наши страницы будут очень простыми. Мы просто создадим страницу index.html для каждого сайта, который идентифицирует этот конкретный домен.
В этом файле создайте простой HTML-документ, указывающий сайт, к которому подключена страница. Для этого руководства файл для нашего первого домена будет выглядеть так:
Сохраните и закройте файл, когда закончите.
Мы можем скопировать этот файл, чтобы использовать его в качестве шаблона для index.html нашего второго сайта, набрав:
Теперь давайте откроем этот файл и изменим соответствующие фрагменты информации:
Сохраните и закройте и этот файл. Теперь у вас есть страницы, необходимые для тестирования конфигурации блока сервера.
Шаг третий — создание новых файлов блоков сервера
Файлы блоков сервера — это то, что определяет конфигурацию наших отдельных сайтов и определяет, как веб-сервер Nginx будет отвечать на различные запросы домена.
Для начала нам нужно настроить каталог, в котором будут храниться наши серверные блоки, а также каталог, который сообщает Nginx, что серверный блок готов обслуживать посетителей. В каталоге с доступом к сайтам будут храниться все файлы блоков нашего сервера, а в каталоге с поддержкой сайтов будут храниться символические ссылки на блоки сервера, которые мы хотим опубликовать. Мы можем создать оба каталога, набрав:
Примечание. Этот макет каталога был представлен участниками Debian, но мы включили его здесь для большей гибкости при управлении блоками сервера (поскольку таким образом проще временно включать и отключать блоки сервера).
Далее мы должны указать Nginx искать серверные блоки в каталоге с включенными сайтами. Для этого мы отредактируем основной файл конфигурации Nginx и добавим строку, объявляющую необязательный каталог для дополнительных файлов конфигурации:
Первая строка указывает Nginx искать серверные блоки в каталоге с поддержкой сайтов, а вторая строка увеличивает объем памяти, выделенный для анализа доменных имен (поскольку мы теперь используем несколько доменов).
После внесения этих изменений вы можете сохранить и закрыть файл. Теперь мы готовы создать наш первый файл блока сервера.
Создайте файл первого блока сервера
По умолчанию Nginx содержит один серверный блок с именем default.conf, который мы можем использовать в качестве шаблона для наших собственных конфигураций. Мы можем создать наш первый файл конфигурации блока сервера, скопировав файл по умолчанию:
Теперь откройте новый файл в текстовом редакторе с правами суперпользователя:
Примечание. Из-за описанных нами конфигураций все файлы серверных блоков должны заканчиваться на .conf .
Игнорируя закомментированные строки, файл будет выглядеть примерно так:
Примечание. Каждый оператор Nginx должен заканчиваться точкой с запятой ( ; ), поэтому проверяйте каждую строку оператора, если позже у вас возникнут проблемы.
Далее мы хотим изменить корень документа, указанный в директиве root. Укажите его на созданный вами корень документа сайта:
Мы также хотим добавить команду try_files, которая завершается ошибкой 404, если нужное имя файла или каталог не найдены:
Когда вы закончите, ваш файл будет выглядеть примерно так:
Это все, что нам нужно для базовой настройки, так что сохраните и закройте файл, чтобы выйти.
Создайте файл второго блока сервера
Теперь, когда у нас есть первый файл блока сервера, мы можем создать второй, скопировав этот файл и изменив его по мере необходимости.
Начните с копирования с помощью cp :
Откройте новый файл с привилегиями root в текстовом редакторе:
Теперь вам нужно изменить все фрагменты информации, чтобы они ссылались на ваш второй домен. Когда вы закончите, ваш второй файл блока сервера может выглядеть примерно так:
После внесения этих изменений вы можете сохранить и закрыть файл.
Шаг четвертый — включите новые файлы блоков сервера
Теперь, когда мы создали файлы серверных блоков, нам нужно включить их, чтобы Nginx знал, что их нужно показывать посетителям. Для этого мы можем создать символическую ссылку для каждого блока сервера в каталоге с поддержкой сайтов:
Когда вы закончите, перезапустите Nginx, чтобы эти изменения вступили в силу:
Шаг пятый — настройка файла локальных хостов (необязательно)
Если вы использовали примеры доменов вместо реальных доменов для тестирования этой процедуры, вы все равно можете проверить функциональность блоков вашего сервера, временно изменив файл hosts на локальном компьютере. Это перехватит любые запросы для настроенных вами доменов и направит их на ваш VPS-сервер, как это сделала бы система DNS, если бы вы использовали зарегистрированные домены. Однако это будет работать только с вашего локального компьютера и просто полезно для тестирования.
Примечание. Для выполнения этих действий убедитесь, что вы работаете на своем локальном компьютере, а не на своем VPS-сервере. Вам потребуется доступ к учетным данным администратора для этого компьютера.
Если вы работаете на компьютере Mac или Linux, отредактируйте локальный файл hosts с правами администратора, набрав:
Если вы работаете на компьютере с Windows, инструкции по изменению файла hosts можно найти здесь.
Подробности, которые необходимо добавить, – это общедоступный IP-адрес вашего VPS, за которым следует домен, который вы хотите использовать для доступа к этому VPS:
Шаг шестой — проверьте свои результаты
Теперь, когда вы настроили серверные блоки, вы можете легко проверить свои настройки, перейдя к доменам, которые вы настроили в веб-браузере:
Вы должны увидеть страницу, которая выглядит следующим образом:
Точно так же, если вы посетите другие свои домены, вы увидите файлы, созданные для них.
Если все настроенные вами сайты работают хорошо, значит, вы успешно настроили новые серверные блоки Nginx на том же сервере CentOS.
Если вы изменили файл hosts на своем домашнем компьютере, вы можете удалить строки, которые вы добавили, теперь, когда вы убедились, что ваша конфигурация работает. Это предотвратит заполнение файла hosts записями, которые на самом деле не нужны.
Заключение
На данный момент у вас должен быть один сервер CentOS 7, обслуживающий несколько сайтов с отдельными доменами. Вы можете расширить этот процесс, выполнив описанные выше шаги, чтобы позже создать дополнительные серверные блоки. Программное обеспечение не ограничивает количество доменных имен, которые может обрабатывать Nginx, поэтому не стесняйтесь создавать столько доменных имен, сколько ваш сервер может обработать.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
В этой статье рассматривается версия CentOS, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением CentOS 6, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию CentOS.
Причина: 30 ноября 2020 года закончился срок службы CentOS 6 (EOL), и она больше не получает исправления или обновления для системы безопасности. По этой причине это руководство больше не поддерживается.
Вместо этого см.:
Это руководство может по-прежнему быть полезным в качестве справочного материала, но может не работать в других выпусках CentOS. Если доступно, мы настоятельно рекомендуем использовать руководство, написанное для используемой вами версии CentOS.
О виртуальных хостах
Виртуальные хосты используются для запуска нескольких веб-сайтов или доменов на одном виртуальном частном сервере. Примечание. Согласно веб-сайту nginx, виртуальные хосты называются серверными блоками в nginx. Однако для простоты сравнения с Apache я буду называть их виртуальными хостами в этом руководстве.
Введение
Убедитесь, что на вашем VPS установлен nginx. Если это не так, вы можете быстро установить его, выполнив 2 шага.
Установите репозиторий EPEL:
Шаг первый: создайте новый каталог
Первым шагом в создании виртуального хоста является создание каталога, в котором мы будем хранить информацию о новом веб-сайте.
Это расположение будет вашим корнем документа в файле виртуальной конфигурации Nginx позже. Добавляя -p к строке кода, команда автоматически создает всех родителей для нового каталога.
Однако, если вы хотите использовать неутвержденное доменное имя для тестирования процесса, вы найдете информацию о том, как заставить его работать на вашем локальном компьютере, в шестом шаге.
Шаг второй: предоставление разрешений
Нам нужно предоставить право собственности на каталог нужному пользователю, а не просто хранить его в корневой системе. Вы можете заменить "www" ниже на соответствующее имя пользователя.
Кроме того, важно убедиться, что каждый может прочитать наши новые файлы.
Теперь вы закончили с разрешениями.
Шаг третий — создание страницы
Нам нужно создать новый файл с именем index.html в каталоге, который мы создали ранее.
Мы можем добавить текст в файл, чтобы нам было на что посмотреть, когда сайт перенаправляется на виртуальный хост.
Шаг четвертый. Настройка виртуального хоста
Следующий шаг — войти в сам файл конфигурации nginx.
Файл виртуального хоста уже почти полностью настроен на вашем виртуальном сервере. Чтобы закончить, просто сопоставьте следующую конфигурацию, изменив имя сервера и местоположение файла по мере необходимости:
Шаг пятый — перезапустите nginx
Мы внесли множество изменений в конфигурацию. Перезапустите nginx и сделайте изменения видимыми.
Дополнительный шестой шаг — настройка локальных хостов
Если вы использовали реальный домен или IP-адрес для тестирования виртуальных серверов, вам не нужно настраивать локальные хосты. Однако если вы используете общий домен, которым не владеете, это гарантирует, что вы сможете настроить его только на своем компьютере.
Для этого шага убедитесь, что вы находитесь на самом компьютере, а не на VPS.
Чтобы продолжить этот шаг, вам необходимо знать пароль администратора вашего компьютера, в противном случае вам потребуется использовать реальное доменное имя или ваш IP-адрес для проверки виртуальных хостов.
Предполагая, что у вас есть доступ администратора (полученный путем ввода su и ввода правильного пароля), вот как вы можете настроить локальные хосты.
На локальном компьютере введите:
Однако может быть хорошей идеей удалить эти выдуманные адреса из локальной папки хостов, когда вы закончите, чтобы избежать путаницы в будущем.
Шаг седьмой. Посмотрите на свой виртуальный хост в действии
После того как вы закончите настройку виртуального хоста, вы сможете посмотреть, как он выглядит в Интернете. Укажите в браузере свое доменное имя или IP-адрес, и вы должны увидеть, что на странице отображается сообщение «Успешно — вы настроили виртуальный хост»
Добавление дополнительных виртуальных хостов
Чтобы создать дополнительные виртуальные хосты, вы можете просто повторить описанный выше процесс, стараясь каждый раз настраивать новый корень документа с соответствующим новым доменным именем. Затем просто скопируйте и вставьте новую информацию о виртуальном хосте в файл конфигурации nginx, как показано ниже
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Читайте также: