Nginx

Как установить Nginx и настроить на CentOS 8

Как установить Nginx и настроить на CentOS 8
Nginx - быстрый и легкий веб-сервер. Файлы конфигурации Nginx действительно просты и с ними легко работать. Это отличная альтернатива веб-серверу Apache.  В этой статье я покажу вам, как установить и настроить веб-сервер Nginx на CentOS 8. Итак, приступим.

Установка Nginx:

Nginx доступен в официальном репозитории пакетов CentOS 8. Итак, установить очень просто.

Сначала обновите кеш репозитория пакетов DNF следующим образом:

$ sudo dnf makecache

Теперь установите Nginx с помощью следующей команды:

$ sudo dnf установить nginx

Для подтверждения установки нажмите Y а затем нажмите .

Nginx должен быть установлен.

Управление сервисом nginx:

По умолчанию, nginx служба должна быть неактивный (не работает) и отключен (не запускается автоматически при загрузке).

$ sudo systemctl статус nginx

Вы можете начать nginx обслуживание следующим образом:

$ sudo systemctl start nginx

nginx служба должна быть Бег.

$ sudo systemctl статус nginx

Теперь добавьте nginx сервис для запуска системы следующим образом:

$ sudo systemctl включить nginx

Настройка межсетевого экрана:

Вы должны настроить брандмауэр, чтобы разрешить доступ к HTTP-порту 80 и HTTPS-порту 443 для доступа к веб-серверу Nginx с других компьютеров в сети.

Вы можете разрешить доступ к портам HTTP и HTTPS с помощью следующей команды:

$ sudo firewall-cmd --add-service = http, https --permanent

Теперь, чтобы изменения вступили в силу, выполните следующую команду:

$ sudo firewall-cmd --reload

Тестирование веб-сервера:

Вы должны знать IP-адрес или доменное имя веб-сервера Nginx, чтобы получить к нему доступ.

Вы можете узнать IP-адрес своего веб-сервера Nginx с помощью следующей команды:

$ ip a

В моем случае IP-адрес 192.168.20.175. Для тебя будет иначе. Так что не забудьте заменить его теперь своим.

Теперь посетите http: // 192.168.20.175 из вашего веб-браузера. Вы должны увидеть следующую страницу. Это означает, что веб-сервер Nginx работает.

Файлы конфигурации nginx:

Файлы конфигурации веб-сервера Nginx находятся в папке / и т.д. / nginx / каталог.

$ tree / etc / nginx

/ и т. д. / nginx / nginx.conf это основной файл конфигурации Nginx.

По умолчанию корневой каталог веб-сервера Nginx: / usr / share / nginx / html /. Итак, здесь вы должны хранить файлы своего сайта.

Настройка базового веб-сервера:

В этом разделе я покажу вам, как настроить базовый веб-сервер Nginx.

Сначала сделайте резервную копию исходного файла конфигурации Nginx с помощью следующей команды:

$ sudo mv -v / и т. д. / nginx / nginx.конф / и т. д. / nginx / nginx.conf.оригинал

Теперь создайте новый файл конфигурации Nginx следующим образом:

$ sudo nano / и т. д. / nginx / nginx.conf

Теперь введите следующие строки в / и т. д. / nginx / nginx.conf файл и сохраните файл.

пользователь nginx nginx;
worker_processes auto;
error_log / var / log / nginx / ошибка.бревно;
pid / run / nginx.pid;
 
События
worker_connections 1024;

 
http
включить / etc / nginx / mime.типы;
default_type application / octet-stream;
 
server
слушать 80;
пример server_name.com www.пример.com;
корень / usr / share / nginx / html;
индекс индекс.html;
журнал_доступа / var / log / nginx / доступ.бревно;

Здесь, Пользователь используется для установки пользователя и группы запуска Nginx в nginx соответственно.

В журнал ошибок опция используется для установки пути к файлу журнала ошибок на / var / log / nginx / ошибка.бревно. Здесь будут храниться ошибки, связанные с сервером Nginx.

Основная конфигурация сервера Nginx определена в сервер раздел внутри http раздел. Вы можете определить более одного сервер раздел внутри http раздел при необходимости.

в сервер раздел,

Слушать опция используется для настройки Nginx для прослушивания порта 80 (HTTP-порт) для веб-запросов.

имя сервера опция используется для установки одного или нескольких доменных имен для веб-сервера Nginx. Если ваши настройки DNS верны, вы можете получить доступ к веб-серверу Nginx, используя эти доменные имена.

access_log используется для установки пути к файлу журнала доступа к / var / журнал / nginx / доступ.бревно. Когда кто-то пытается получить доступ к веб-серверу Nginx, информация о доступе (i.е. IP-адрес, URL-адрес, код состояния HTTP) будут записаны в этот файл.

В место расположения опция используется для установки корневого каталога веб-сервера Nginx.

Здесь корень каталог / usr / share / nginx / html /.

Здесь должны храниться все файлы сайта. В индекс наборы опций индекс.html в качестве файла по умолчанию для обслуживания, если не запрашивается конкретный файл. Например, если вы зайдете по адресу http: // 192.168.20.175 / myfile.html, тогда вам Nginx вернет мой файл.html файл. Но если вы посетите http: // 192.168.20.175 /, тогда Nginx отправит вам индекс.html файл, так как конкретный файл не запрашивался.

Теперь удалите все файлы из / usr / share / nginx / html / каталог (веб-корень) следующим образом:

$ sudo rm -rfv / usr / share / nginx / html / *

Теперь создайте новый индекс.html файл в / usr / share / nginx / html / каталог следующим образом:

Теперь введите следующие строки в индекс.html файл и сохраните файл.

Привет мир


© 2020 LinuxHint.ком

Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

Теперь посетите http: // 192.168.20.175 из вашего веб-браузера, и вы должны увидеть следующую страницу. поздравляю! Вы настроили свой первый веб-сервер Nginx.

Настройка страниц ошибок:

Вы можете настроить страницы ошибок в Nginx. Например, если страница / файл / каталог недоступны, в браузер будет возвращен код состояния HTTP 404. Вы можете настроить пользовательскую страницу ошибки HTML для кода состояния HTTP 404, который будет возвращен браузеру.

Для этого добавьте следующую строку в сервер раздел nginx.conf файл.

server

error_page 404/404.html;

Теперь создайте файл 404.html в корневом веб-каталоге Nginx / usr / share / nginx / html / следующим образом:

$ sudo nano / usr / share / nginx / html / 404.html

Теперь введите следующие строки в 404.html и сохраните файл.

Ошибка 404


Страница не найдена


© 2020 LinuxHint.ком

Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

Теперь попробуйте получить доступ к несуществующему пути (http: // 192.168.20.175 / страница.html), и вы должны увидеть следующую страницу с ошибкой.

Если 404.html файл находится в другом пути файловой системы (скажем, / usr / share / nginx / html / ошибки / каталог), вы можете сопоставить URL / 404.html к нему следующим образом:

server

error_page 404/404.html;
расположение / 404.html
root / usr / share / nginx / html / errors;


Теперь создайте новый каталог  / usr / share / nginx / html / ошибки / следующим образом:

$ sudo mkdir / usr / share / nginx / html / ошибки

Теперь создайте новый файл 404.html в каталоге / usr / share / nginx / html / ошибки / следующим образом:

$ sudo nano / usr / share / nginx / html / ошибки / 404.html

Теперь введите следующие строки в 404.html файл и сохраните файл.

СТРАНИЦА НЕ НАЙДЕНА


ВОЗВРАЩАЙСЯ ДОМОЙ

Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

Теперь попробуйте получить доступ к несуществующему пути (http: // 192.168.20.175 / страница.html), и вы должны увидеть обновленную страницу ошибки.

Таким же образом вы можете установить страницу ошибки для других кодов состояния HTTP.

Вы также можете установить одну и ту же страницу ошибки для нескольких кодов состояния HTTP. Например, чтобы установить ту же страницу ошибки / 404.html для кодов состояния HTTP 403 а также 404, написать error_page вариант следующим образом:

error_page 403 404/404.html;

Настройка журналов:

В Nginx журнал ошибок а также access_log опции используются для регистрации сообщений об ошибках и доступа к информации.

Формат журнал ошибок а также access_log варианты:

error_log / путь / к / error / log / file [необязательно: custom-log-name];
журнал_доступа / путь / к / доступу / журналу / файлу [необязательно: настраиваемое имя-журнала];

Вы можете определить свой собственный журнал ошибок и получить доступ к форматам журнала, если хотите.

Для этого используйте log_format вариант в http раздел для определения вашего пользовательского формата журнала следующим образом.

http

log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';

server

журнал_доступа / var / log / nginx / доступ.журнал простой;


Здесь имя формата журнала просто. Некоторые переменные nginx используются для определения пользовательского формата журнала. Посетите Руководство по встроенным переменным Nginx, чтобы узнать обо всех переменных Nginx.

Пользовательский формат журнала должен быть заключен в одинарные кавычки. Формат журнала может быть определен в одной строке или в нескольких строках. В этой статье я показал, как определить формат журнала в нескольких строках. У вас не будет проблем с форматом однострочного журнала, поверьте мне!

Как только формат журнала просто определено, access_log используется, чтобы указать Nginx использовать его в качестве журнала доступа.

Таким же образом вы можете установить собственный формат журнала ошибок, используя журнал ошибок вариант.

Я настроил только собственный формат журнала для журнала доступа в этой статье.

Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

Теперь вы можете отслеживать файл журнала доступа следующим образом:

$ sudo tail -f / var / log / nginx / доступ.бревно

Вы также можете отслеживать файл журнала ошибок следующим образом:

$ sudo tail -f / var / log / nginx / ошибка.бревно

При желании вы можете одновременно отслеживать файлы журнала доступа и журнала ошибок следующим образом:

$ sudo tail -f / var / log / nginx / ошибка, доступ.бревно

Как видите, используется новый формат журнала доступа.

Отказ в доступе к определенным путям:

Вы можете использовать регулярные выражения для сопоставления определенных путей URI и запретить доступ к нему в Nginx.

Допустим, вашим сайтом управляет Git, и вы хотите запретить доступ к .git / каталог в вашем корневом веб-каталоге.

Для этого введите следующие строки в поле сервер раздел / и т. д. / nging / nginx.conf файл:

server

расположение ~ \.git
все отрицать;


Как видите, доступ к любому пути, содержащему .мерзавец отказано.

Настройка сжатия:

Вы можете сжать веб-содержимое перед отправкой его в браузер, используя gzip для экономии использования полосы пропускания веб-сервера Nginx.

У меня есть изображения в формате JPEG в / usr / share / nginx / html / images / каталог.

Я могу получить доступ к этим изображениям, используя путь URI /изображений.

Чтобы включить сжатие gzip только для изображений JPEG в пути URI /изображений, введите следующие строки в сервер раздел / и т. д. / nginx / nginx.conf файл.

server

location / images
gzip дальше;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;


Здесь, gzip_comp_level используется для установки уровня сжатия. Это может быть любое число от 1 до 9. Чем выше уровень, тем меньше будет сжатый файл.

Файл будет сжат только в том случае, если размер файла больше gzip_min_length. В этом примере я установил около 100 КБ. Таким образом, файлы JPEG размером менее 100 КБ не будут сжаты с помощью gzip.

В  gzip_types используется для установки типа MIME файлов, которые будут сжиматься.

Вы можете найти тип MIME в расширениях файлов следующим образом:

$ grep jpg / etc / nginx / mime.типы

Как видите, для .jpg или же .jpeg расширение файла, тип пантомимы - изображение / JPEG.

Вы можете установить один или несколько типов MIME, используя gzip_types вариант.

Если вы хотите установить несколько типов mime, обязательно разделите их пробелами следующим образом:

"
gzip_types image / jpeg image / png image / gif;

Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

Как видите, Nginx отправляет сжатые файлы изображений gzip в браузер по запросу.

Как вы можете видеть на скриншоте ниже, сжатый файл gzip меньше исходного файла.

$ sudo tail -f / var / log / nginx / доступ.бревно

Включение HTTPS:

Вы можете очень легко включить SSL в Nginx. В этом разделе я покажу вам, как установить самоподписанный сертификат SSL в Nginx.

Сначала перейдите к / и т. д. / ssl / каталог следующим образом:

$ cd / etc / ssl

Теперь сгенерируйте ключ SSL сервер.ключ и сертификат сервер.crt с помощью следующей команды:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout
сервер.сервер ключей.crt

ПРИМЕЧАНИЕ: Вы должны иметь openssl установлен, чтобы это работало. Если команда openssl недоступна, установите openssl с помощью следующей команды:

$ sudo dnf установить openssl -y

Теперь введите свой двухбуквенный код страны (i.е. США для США, UK для Великобритании, RU для России, CN для Китая) и нажмите .

Теперь введите название своего штата / провинции и нажмите .

Теперь введите название своего города и нажмите .

Теперь введите название своей компании и нажмите .

Теперь введите название организационной единицы вашей компании, которая будет использовать этот сертификат, и нажмите .

Теперь введите полное доменное имя (FQDN) вашего веб-сервера Nginx и нажмите . Сертификат SSL будет действителен только в том случае, если доступ к веб-серверу Nginx осуществляется с использованием этого доменного имени.

Теперь введите свой адрес электронной почты и нажмите .

Ваш SSL-сертификат должен быть готов.

Сертификат SSL и ключ должны быть сгенерированы в / и т. д. / ssl / каталог.

$ ls -lh

Теперь откройте файл конфигурации Nginx / и т. д. / nginx / nginx.conf и изменить Слушать порт в 443 и введите следующие строки в сервер раздел.

server

ssl включен;
ssl_certificate / etc / ssl / сервер.crt;
ключ_сертификата ssl / etc / ssl / server.ключ;

Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

В реальной жизни у вас будет правильная настройка DNS. Но для целей тестирования я настроил локальное файловое доменное имя на компьютере, который использовал для доступа к веб-серверу Nginx из.

Если вы хотите продолжить, откройте / etc / hosts файл следующим образом:

$ sudo nano / etc / hosts

Затем добавьте следующую строку в / etc / hosts файл.

192.168.20.175 www.пример.ком

Теперь попробуйте посетить https: // www.пример.com, и вы должны увидеть следующую страницу. Ты увидишь Ваше соединение небезопасно сообщение, потому что это самозаверяющий сертификат. Это подходит только для целей тестирования.

В реальной жизни вы будете покупать SSL-сертификаты в центрах сертификации (ЦС) и использовать их. Значит, вы не увидите сообщения такого типа.

Как видите, Nginx обслуживает веб-страницу по HTTPS. Итак, SSL работает.

Информация SSL www.пример.ком.

Перенаправление HTTP-запросов на HTTPS:

Если кто-то заходит на ваш сайт по протоколу HTTP (http: // www.пример.com или http: // 192.168.20.175) вместо HTTPS (https: // www.пример.com), вы не хотите отклонять HTTP-запрос. Если вы сделаете это, вы потеряете посетителя. Что вам действительно нужно сделать, так это перенаправить пользователя на сайт с поддержкой SSL. Это действительно просто сделать.

Сначала откройте файл конфигурации Nginx / и т. д. / nginx / nginx.conf и создать новый сервер раздел внутри http раздел следующим образом:

http

server
слушать 80;
имя_сервера www.пример.com;
возврат 301 https: // www.пример.com $ request_uri;


Это финал / и т. д. / nginx / nginx.conf файл:

пользователь nginx nginx;
worker_processes auto;
error_log / var / log / nginx / ошибка.бревно;
pid / run / nginx.pid;
События
worker_connections 1024;

http
включить / etc / nginx / mime.типы;
default_type application / octet-stream;
log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
 
server
слушать 80;
имя_сервера www.пример.com;
возврат 301 https: // www.пример.com $ request_uri;

server
слушать 443;
имя_сервера www.пример.com;
ssl включен;
ssl_certificate / etc / ssl / сервер.crt;
ssl_certificate_key / etc / ssl / server.ключ;
журнал_доступа / var / log / nginx / доступ.журнал простой;
место расположения /
корень / usr / share / nginx / html;
индекс индекс.html;

location / images
gzip дальше;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

error_page 404/404.html;
расположение / 404.html
root / usr / share / nginx / html / errors;

расположение ~ \.git
все отрицать;


Теперь перезапустите nginx обслуживание следующим образом:

$ sudo systemctl перезапустить nginx

Теперь, если вы попытаетесь получить доступ к http: // 192.168.20.175 или http: // www.пример.com, вы будете перенаправлены на https: // www.пример.ком.

Итак, вот как вы устанавливаете и настраиваете веб-сервер Nginx на CentOS 8. Спасибо, что прочитали эту статью.

Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...