Настройка nginx centos 8
Обновлено: 21.11.2024
Nginx – один из самых популярных веб-серверов в мире, на котором размещены одни из самых крупных и популярных сайтов в Интернете. В большинстве случаев он менее требователен к ресурсам, чем Apache, и может использоваться в качестве веб-сервера или обратного прокси-сервера.
В этом руководстве мы обсудим, как установить Nginx на сервер CentOS 8.
Предпосылки
Чтобы следовать этому руководству, вам потребуется доступ к серверу CentOS 8 в качестве пользователя без полномочий root с правами sudo и активный брандмауэр, установленный на вашем сервере. Чтобы настроить это, вы можете следовать нашему Руководству по начальной настройке сервера для CentOS 8.
Шаг 1 — Установка веб-сервера Nginx
Чтобы установить Nginx, мы будем использовать диспетчер пакетов dnf, который является новым менеджером пакетов по умолчанию в CentOS 8.
Установите пакет nginx с помощью:
При появлении запроса введите y, чтобы подтвердить, что вы хотите установить nginx. После этого dnf установит Nginx и все необходимые зависимости на ваш сервер.
После завершения установки выполните следующие команды, чтобы включить и запустить сервер:
Это заставит Nginx запускаться при загрузке системы.
Шаг 2. Настройка правил брандмауэра
Если вы включили брандмауэр firewalld в соответствии с инструкциями в нашем руководстве по первоначальной настройке сервера для CentOS 8, вам потребуется настроить параметры брандмауэра, чтобы разрешить внешние подключения на вашем веб-сервере Nginx, который по умолчанию работает через порт 80. .
Вы увидите следующий вывод:
Чтобы применить изменения, вам потребуется перезагрузить службу брандмауэра:
Теперь ваш сервер Nginx полностью установлен и готов к доступу внешних посетителей.
Шаг 3. Проверка веб-сервера
Теперь вы можете проверить, запущен ли ваш веб-сервер Nginx, обратившись к общедоступному IP-адресу или доменному имени вашего сервера из веб-браузера.
Примечание. Если вы используете DigitalOcean в качестве провайдера DNS-хостинга, вы можете ознакомиться с нашей документацией по продукту, чтобы получить подробные инструкции о том, как настроить новое доменное имя и связать его с вашим сервером.
Если у вас нет доменного имени, указывающего на ваш сервер, и вы не знаете общедоступный IP-адрес вашего сервера, вы можете найти его, выполнив следующую команду:
Это распечатает несколько IP-адресов. Вы можете попробовать каждый из них по очереди в веб-браузере.
В качестве альтернативы вы можете проверить, какой IP-адрес доступен для просмотра из других мест в Интернете:
Введите полученный адрес в веб-браузере, и вы перейдете на целевую страницу Nginx по умолчанию:
Если вы видите эту страницу, ваш веб-сервер установлен правильно.
Шаг 4. Управление процессом Nginx
Теперь, когда ваш веб-сервер запущен и работает, мы рассмотрим, как управлять службой Nginx через systemctl .
Всякий раз, когда вам нужно остановить веб-сервер, вы можете использовать:
Чтобы запустить веб-сервер, когда он остановлен, введите:
Чтобы остановить и снова запустить службу, вы можете использовать:
Nginx также может повторно загружать изменения конфигурации без прерывания соединений. Для этого введите:
По умолчанию Nginx настроен на автоматический запуск при загрузке сервера. Если это не то, что вы хотите, вы можете отключить это поведение, набрав:
Чтобы снова включить службу и заставить Nginx снова запускаться при загрузке, вы можете использовать:
Шаг 5. Знакомство с важными файлами и каталогами Nginx
Теперь, когда вы знаете, как управлять службой Nginx, вы должны потратить несколько минут, чтобы ознакомиться с несколькими важными каталогами и файлами.
Контент
- /usr/share/nginx/html : фактический веб-контент, который по умолчанию состоит только из страницы Nginx по умолчанию, которую вы видели ранее, обслуживается из каталога /usr/share/nginx/html. Это можно изменить, изменив файлы конфигурации Nginx.
Конфигурация сервера
- /etc/nginx : каталог конфигурации Nginx. Здесь находятся все файлы конфигурации Nginx.
- /etc/nginx/nginx.conf : основной файл конфигурации Nginx. Это можно изменить, чтобы внести изменения в глобальную конфигурацию Nginx.
- /etc/nginx/conf.d/ : этот каталог содержит файлы конфигурации блока сервера, где вы можете определить веб-сайты, размещенные в Nginx. Типичный подход заключается в том, чтобы каждый веб-сайт находился в отдельном файле с именем, соответствующим доменному имени веб-сайта, например your_domain.conf .
Журналы сервера
- /var/log/nginx/access.log : каждый запрос к вашему веб-серверу записывается в этот файл журнала, если Nginx не настроен иначе.
- /var/log/nginx/error.log : все ошибки Nginx будут записываться в этот журнал.
Шаг 6. Настройка серверных блоков (необязательно)
Если вы хотите разместить несколько веб-сайтов на одном и том же веб-сервере Nginx, вам необходимо настроить серверные блоки. Блоки сервера Nginx работают аналогично виртуальным хостам Apache, позволяя одному серверу отвечать на несколько доменных имен и обслуживать различный контент для каждого из них. В CentOS 8 серверные блоки определяются в файлах .conf, расположенных в /etc/nginx/conf.d .
Мы настроим блок сервера для домена с именем your_domain. Чтобы узнать больше о настройке доменного имени в DigitalOcean, ознакомьтесь с нашим введением в DigitalOcean DNS.
По умолчанию Nginx в CentOS 8 настроен на обслуживание документов из каталога /usr/share/nginx/html . Хотя это хорошо работает для одного сайта, это может стать неуправляемым, если вы размещаете несколько сайтов. Вместо изменения /usr/share/nginx/html мы создадим структуру каталогов в /var/www для веб-сайта your_domain, оставив /usr/share/nginx/html в качестве каталога по умолчанию, который будет обслуживаться, если клиент запрос не соответствует ни одному другому сайту.
Создайте каталог для your_domain следующим образом, используя флаг -p для создания всех необходимых родительских каталогов:
Затем назначьте владельца каталога с помощью переменной среды $USER, которая должна ссылаться на вашего текущего системного пользователя:
Далее мы создадим образец страницы index.html для проверки конфигурации блока сервера. Текстовым редактором по умолчанию, который поставляется с CentOS 8, является vi. vi — чрезвычайно мощный текстовый редактор, но он может быть несколько бестолковым для пользователей, не имеющих опыта работы с ним. Возможно, вы захотите установить более удобный редактор, такой как nano, чтобы облегчить редактирование файлов конфигурации на вашем сервере CentOS 8:
Теперь вы можете использовать nano для создания примера файла index.html:
Внутри этого файла добавьте следующий код HTML:
Сохраните и закройте файл, когда закончите. Если вы использовали nano , вы можете сделать это, нажав CTRL + X , Y , а затем ENTER .
Чтобы Nginx мог обслуживать этот контент, нам нужно создать блок сервера с правильными директивами, указывающими на наш собственный веб-корневой каталог. Мы создадим новый блок сервера в /etc/nginx/conf.d/your_domain.conf:
Вставьте следующий блок конфигурации:
Сохраните и закройте файл, когда закончите редактирование его содержимого.
Чтобы убедиться, что ни в одном из ваших файлов Nginx нет синтаксических ошибок, запустите:
Если проблем нет, вы увидите следующий вывод:
После прохождения теста конфигурации перезапустите Nginx, чтобы изменения вступили в силу:
Прежде чем вы сможете протестировать изменения в своем браузере, вам необходимо обновить контексты безопасности SELinux вашего сервера, чтобы Nginx разрешил обслуживать контент из каталога /var/www/your_domain.
Эта страница отображает код HTML, который мы определили в пользовательском корневом каталоге документа, созданном для блока сервера. Если вы видите эту страницу, это означает, что ваш сервер Nginx правильно настроен для обслуживания вашего домена.
Заключение
В этом руководстве мы рассмотрели, как установить и настроить Nginx, высокопроизводительный веб-сервер и обратный прокси-сервер. Мы рассмотрели, как управлять службой Nginx, работающей на вашем сервере, и какие основные каталоги используются Nginx для хранения файлов конфигурации, содержимого и журналов.
Здесь у вас есть много вариантов для типа контента и технологий, которые вы можете использовать на веб-сайтах, размещенных на вашем веб-сервере.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Nginx — это быстрый и легкий веб-сервер. Файлы конфигурации Nginx действительно просты и удобны в работе. Это отличная альтернатива веб-серверу Apache. В этой статье я покажу вам, как установить и настроить веб-сервер Nginx на CentOS 8. Итак, приступим.
Установка Nginx:
Nginx доступен в официальном репозитории пакетов CentOS 8. Поэтому его очень легко установить.
Сначала обновите кэш репозитория пакетов DNF следующим образом:
Теперь установите Nginx с помощью следующей команды:
Чтобы подтвердить установку, нажмите Y, а затем нажмите .
Должен быть установлен Nginx.
Управление службой nginx:
По умолчанию служба nginx должна быть неактивна (не запущена) и отключена (не запускаться автоматически при загрузке).
Вы можете запустить службу nginx следующим образом:
Служба nginx должна быть запущена.
Теперь добавьте службу nginx в автозагрузку системы следующим образом:
Настройка брандмауэра:
Теперь, чтобы изменения вступили в силу, выполните следующую команду:
Тестирование веб-сервера:
Вы должны знать IP-адрес или доменное имя веб-сервера Nginx, чтобы получить к нему доступ.
Вы можете узнать IP-адрес вашего веб-сервера Nginx с помощью следующей команды:
В моем случае IP-адрес – 192.168.20.175. Для вас это будет иначе. Поэтому обязательно замените его своим.
Файлы конфигурации nginx:
Файлы конфигурации веб-сервера Nginx находятся в каталоге /etc/nginx/.
/etc/nginx/nginx.conf — это основной файл конфигурации Nginx.
Корневой веб-каталог веб-сервера Nginx по умолчанию — /usr/share/nginx/html/. Итак, именно здесь вы должны хранить файлы своего веб-сайта.
Настройка базового веб-сервера:
В этом разделе я покажу вам, как настроить базовый веб-сервер Nginx.
Сначала сделайте резервную копию исходного файла конфигурации Nginx с помощью следующей команды:
Теперь создайте новый файл конфигурации Nginx следующим образом:
Теперь введите следующие строки в файл /etc/nginx/nginx.conf и сохраните файл.
Здесь параметр пользователя используется для установки пользователя и группы запуска Nginx на nginx соответственно.
Опция error_log используется для установки пути файла журнала ошибок к /var/log/nginx/error.log. Здесь будут храниться ошибки, связанные с сервером Nginx.
В разделе сервера
Параметрserver_name используется для установки одного или нескольких доменных имен для веб-сервера Nginx. Если ваши настройки DNS верны, вы можете получить доступ к веб-серверу Nginx, используя эти доменные имена.
Опция местоположения используется для установки корневого каталога веб-сервера Nginx.
Здесь корневой каталог — /usr/share/nginx/html/.
Теперь удалите все файлы из каталога /usr/share/nginx/html/ (веб-корня) следующим образом:
Теперь создайте новый файл index.html в каталоге /usr/share/nginx/html/ следующим образом:
Теперь введите следующие строки в файл index.html и сохраните файл.
Теперь перезапустите службу nginx следующим образом:
Для этого добавьте следующую строку в раздел сервера файла nginx.conf.
Теперь создайте файл 404.html в корневом веб-каталоге Nginx /usr/share/nginx/html/ следующим образом:
Теперь введите следующие строки в 404.html и сохраните файл.
Теперь перезапустите службу nginx следующим образом:
Если ошибка 404.html находится в другом пути файловой системы (скажем, в каталоге /usr/share/nginx/html/errors/), вы можете сопоставить с ним URL-адрес /404.html следующим образом:
Теперь создайте новый каталог /usr/share/nginx/html/errors/ следующим образом:
Теперь создайте новый файл 404.html в каталоге /usr/share/nginx/html/errors/ следующим образом:
Теперь введите следующие строки в файл 404.html и сохраните файл.
Теперь перезапустите службу nginx следующим образом:
Настройка журналов:
В Nginx параметры error_log и access_log используются для регистрации сообщений об ошибках и информации о доступе.
журнал_ошибок /путь/к/файлу/журналу_ошибки [необязательный:имя-журнала] ;
access_log /path/to/access/log/file [необязательно: custom-log-name] ;
Вы можете определить свой собственный журнал ошибок и получить доступ к формату журнала, если хотите.
Здесь имя формата журнала простое. Некоторые переменные nginx используются для определения пользовательского формата журнала. Посетите Руководство по встроенным переменным Nginx, чтобы узнать обо всех переменных Nginx.
Пользовательский формат журнала должен быть заключен в одинарные кавычки. Формат журнала может быть определен в одной строке или в нескольких строках. В этой статье я показал, как определить формат журнала несколькими строками. У вас не возникнет проблем с однострочным форматом журнала, поверьте мне!
После определения простого формата журнала используется параметр access_log, чтобы указать Nginx использовать его в качестве журнала доступа.
Точно так же вы можете установить собственный формат журнала ошибок, используя параметр error_log.
В этой статье я настроил только собственный формат журнала доступа.
Теперь перезапустите службу nginx следующим образом:
Теперь вы можете отслеживать файл журнала доступа следующим образом:
Вы также можете отслеживать файл журнала ошибок следующим образом:
При желании вы можете одновременно отслеживать файлы журнала доступа и журнала ошибок следующим образом:
Как видите, используется новый формат журнала доступа.
Отказ в доступе к определенным путям:
Вы можете использовать регулярные выражения для сопоставления определенных путей URI и запретить доступ к ним в Nginx.
Допустим, ваш веб-сайт управляется Git, и вы хотите запретить доступ к каталогу .git/ в корневом каталоге вашего веб-сайта.
Для этого введите следующие строки в разделе server файла /etc/nging/nginx.conf:
Как видите, доступ к любому пути, содержащему .git, запрещен.
Настройка сжатия:
Вы можете сжимать веб-контент перед его отправкой в браузер с помощью gzip, чтобы уменьшить пропускную способность веб-сервера Nginx.
У меня есть несколько изображений JPEG в каталоге /usr/share/nginx/html/images/.
Я могу получить доступ к этим изображениям, используя путь URI /images.
Чтобы включить сжатие gzip только для изображений JPEG в пути URI /images, введите следующие строки в разделе сервера файла /etc/nginx/nginx.conf.
Здесь gzip_comp_level используется для установки уровня сжатия. Это может быть любое число от 1 до 9. Чем выше уровень, тем меньше будет сжатый файл.
Файл будет сжат только в том случае, если размер файла превышает gzip_min_length. В этом примере я установил около 100 КБ. Таким образом, файлы JPEG размером менее 100 КБ не будут сжаты gzip.
gzip_types используется для установки MIME-типа файлов, которые будут сжаты.
Вы можете найти MIME-тип по расширениям файлов следующим образом:
Как видите, для файлов с расширением .jpg или .jpg тип mime — image/jpeg.
Вы можете установить один или несколько типов MIME с помощью параметра gzip_types.
Если вы хотите установить несколько типов пантомимы, обязательно разделите их пробелами следующим образом:
Теперь перезапустите службу nginx следующим образом:
Как видите, Nginx отправляет сжатые gzip файлы изображений в браузер по запросу.
Как видно на снимке экрана ниже, сжатый файл gzip меньше исходного файла.
Вы можете очень легко включить SSL в Nginx. В этом разделе я покажу вам, как установить самозаверяющий сертификат SSL в Nginx.
Сначала перейдите в каталог /etc/ssl/ следующим образом:
Теперь создайте ключ SSL server.key и сертификат server.crt с помощью следующей команды:
ПРИМЕЧАНИЕ. Чтобы это работало, у вас должен быть установлен openssl. Если команда openssl недоступна, установите openssl с помощью следующей команды:
Теперь введите двухбуквенный код страны (например, US для США, UK для Соединенного Королевства, RU для России, CN для Китая) и нажмите .
Теперь введите название штата/провинции и нажмите .
Теперь введите название своего города и нажмите .
Теперь введите название своей компании и нажмите .
Теперь введите название организационного подразделения вашей компании, которое будет использовать этот сертификат, и нажмите .
Теперь введите полное доменное имя (FQDN) вашего веб-сервера Nginx и нажмите . Сертификат SSL будет действителен, только если доступ к веб-серверу Nginx осуществляется с использованием этого доменного имени.
Теперь введите свой адрес электронной почты и нажмите .
Ваш SSL-сертификат должен быть готов.
Сертификат SSL и ключ должны быть сгенерированы в каталоге /etc/ssl/.
Теперь откройте файл конфигурации Nginx /etc/nginx/nginx.conf, измените порт прослушивания на 443 и введите следующие строки в разделе сервера.
Теперь перезапустите службу nginx следующим образом:
В реальной жизни у вас будет правильная настройка DNS. Но в целях тестирования я настроил локальное доменное имя на основе файла на компьютере, с которого я обращался к веб-серверу Nginx.
Если вы хотите продолжить, откройте файл /etc/hosts следующим образом:
Затем добавьте следующую строку в файл /etc/hosts.
В реальной жизни вы будете покупать сертификаты SSL в центрах сертификации (ЦС) и использовать их. Таким образом, вы не увидите сообщения такого типа.
Это окончательный файл /etc/nginx/nginx.conf:
Теперь перезапустите службу nginx следующим образом:
Итак, вот как установить и настроить веб-сервер Nginx в CentOS 8. Спасибо, что прочитали эту статью.
В этом руководстве вы узнаете, как установить Nginx на CentOS 8.
- Операционная система CentOS 8
- IP-адрес сервера или домен для подключения к вашему веб-серверу Nginx
- Пользователь с привилегиями root
- SELinux настроен правильно
Установите Nginx на CentOS 8
Перед любой установкой всегда обновляйте локальный репозиторий, чтобы убедиться, что вы загружаете последнюю версию программного обеспечения. Используйте команду:
Вы можете проверить пакет Nginx, прежде чем добавлять его в свою систему. Запрос на просмотр метаданных RPM, включенных в каждый пакет RPM:
Далее установите Nginx на CentOS 8 с помощью команды:
Вывод показывает список установленных пакетов Nginx, как показано на изображении ниже.
Примечание. Nginx — это хорошо известная альтернатива Apache для веб-серверов. Если вы все еще не уверены, какой из них лучше всего подходит для вашего веб-сайта, вы можете проверить это быстрое сравнение между Apache и Nginx.
Запустите Nginx на Centos 8
Несмотря на то, что вы установили Nginx, служба не запустится автоматически.
Запустите службу, введя:
Чтобы разрешить запуск службы при использовании во время загрузки:
Если вы проверите статус службы, выходные данные должны показать, что Nginx активен (работает):
Остановить, перезагрузить или перезапустить Nginx
Остановите Nginx с помощью команды:
Перезапустите Nginx (остановите и снова запустите службу) с помощью команды:
Перезагрузите файлы конфигурации, не останавливая службу:
Настройка брандмауэра
Проверьте брандмауэр
Используйте Netstat для получения списка всех открытых портов и проверьте, успешно ли вы открыли 80 и 443:
Дважды проверьте работу Nginx, посетив свой общедоступный IP-адрес (или доменное имя).
Чтобы увидеть IP-адрес вашего сервера, введите в терминале следующую команду:
Найдите IP-адрес и скопируйте его.
Затем откройте веб-браузер и вставьте IP-адрес (или доменное имя) в адресную строку. Откроется страница приветствия Nginx, подтверждающая, что вы успешно установили и настроили сервер.
Настроить Nginx
Вам не нужно настраивать Nginx после установки. Однако вы должны знать расположение файлов конфигурации и корневой каталог Nginx на случай, если вам потребуется изменить конфигурацию.
- Каталог конфигурации Nginx: /etc/nginx
- Корневой каталог Nginx: /usr/share/nginx/html
- Главный/глобальный файл конфигурации: /etc/nginx/nginx.conf
Если вы хотите изменить глобальный файл конфигурации, вы должны открыть его (etc/nginx/nginx.conf) в текстовом редакторе и применить изменения.
Теперь вы должны знать, как установить Nginx на CentOS 8.
Nginx является частью стека LEMP, набора программного обеспечения с открытым исходным кодом, используемого для разработки веб-приложений и веб-сайтов. LEMP — популярная альтернатива традиционному стеку LAMP. Единственная разница между ними заключается в том, что первый использует Nginx, а второй — Apache в качестве веб-сервера.
В этой статье мы шаг за шагом покажем вам, как установить Nginx на сервер CentOS 8.
Предварительные условия
Перед началом установки убедитесь, что у вас нет процессов, запущенных через порт 80 или 443.
Установка Nginx на CentOS 8
Следующие шаги, которые необходимо выполнить для установки Ngnix в вашей системе:
Войдите в систему как пользователь root.
Откройте окно терминала, открыв панель поиска в разделе Действия. Или вы можете открыть с помощью сочетаний клавиш Ctrl + Alt + t.
По умолчанию Nginx доступен в репозиториях CentOS 8. Таким образом, вы можете установить его с помощью менеджера пакетов yum в вашей системе. Чтобы установить Nginx, введите в терминале следующую команду:
На терминале появится запрос подтверждения пользователя. Вы нажмете «y» и «Enter», чтобы продолжить установку пакетов Nginx.
Через некоторое время на терминале отобразится статус «завершено», который покажет, что Ngnix успешно установлен в вашей системе.
После завершения установки Nginx вы включите службу Nginx в своей системе с помощью следующей команды:
На следующем шаге мы запустим службу Nginx в вашей системе с помощью следующей команды:
Теперь мы проверим, работает ли служба Ngnix. Для этого введите в терминале следующую команду:
Настройка параметров брандмауэра
Вы навсегда откроете необходимые порты, используя следующие команды:
Протестируйте установку Nginx
Теперь вы протестируете установку Nginx. Для этого сначала вы проверите свой IP-адрес с помощью следующей команды на терминале:
Поздравляем, сервер Nginx успешно установлен на вашем CentOS 8. Теперь вы готовы приступить к развертыванию своих приложений и можете использовать Nginx в качестве прокси-веб-сервера.
Файлы конфигурации Ngnix расположены в каталоге /etc/nginx/. Основной файл конфигурации Nginx — /etc/nginx/nginx.conf.
Заключение
В этой статье вы узнали, как установить Nginx на CentOS 8. Кроме того, как настроить параметры брандмауэра в вашей системе с помощью терминала. Я надеюсь, вам понравилась эта статья, и она будет полезна для вас. Если у вас есть какие-либо проблемы, связанные с этой статьей, сообщите нам об этом, оставив отзыв или комментарий в поле для комментариев.
Карим Буздар
Об авторе: Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Вы можете связаться с Каримом в LinkedIn
Поиск
Об этом сайте
Последние руководства
сообщить об этом объявлении
Читайте также: