Введение
Nginx — это бесплатный высокопроизводительный HTTP- и обратный прокси-сервер с открытым исходным кодом, отвечающий за управление нагрузкой некоторых из крупнейших сайтов в Интернете.
Nginx можно использовать как автономный веб-сервер и как обратный прокси -сервер для Apache и других веб-серверов.
По сравнению с Apache, Nginx может обрабатывать очень большое количество одновременных подключений и требует меньше памяти для каждого подключения.
В этом руководстве вы узнаете, как установить и управлять Nginx на вашем компьютере с CentOS 8.
Предпосылки
Прежде чем приступить к изучению руководства, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo и что у вас нет Apache или других служб, работающих на портах 80 или 443.
Если вы хотите установить Nginx на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Установите Nginx на CentOS
Выполните следующие действия, чтобы установить Nginx на сервер CentOS:
Пакеты Nginx доступны в репозиториях EPEL. Если вы еще не установили репозиторий EPEL, вы можете сделать это, набрав:
sudo dnf install epel-release
Установите Nginx, введя следующую команду yum:
sudo dnf install nginx
Если вы впервые устанавливаете пакет из репозитория EPEL, dnf может попросить вас импортировать ключ EPEL GPG. Вывод может выглядеть так:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid: "Fedora EPEL (7) "
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package: epel-release-7-9.noarch (@extras)
From: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]:
Если это так, введите y
и нажмите Enter
.
После завершения установки включите и запустите службу Nginx с помощью:
sudo systemctl enable nginx
sudo systemctl start nginx
Проверьте состояние службы Nginx с помощью следующей команды:
sudo systemctl status nginx
Вывод должен выглядеть так:
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 23:03:11 CET; 3min 54s ago
Process: 8143 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 8141 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 8140 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 8145 (nginx)
Tasks: 2 (limit: 12251)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─8145 nginx: master process /usr/sbin/nginx
└─8146 nginx: worker process
Если ваш сервер защищен брандмауэром, вы должны открыть порты HTTP ( 80
) и HTTPS ( 443
).
Используйте следующие команды, чтобы открыть необходимые порты:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Чтобы проверить установку Nginx, откройте браузер по вашему выбору и подключитесь к вашему IP-адресу или доменному имени http://DOMINIO_O_INDIRIZZO_IP
, и вы увидите страницу приветствия Nginx по умолчанию.
Управляйте сервисом Nginx с помощью systemctl
Вы можете управлять службой Nginx, как и любым другим системным диском.
Чтобы остановить службу Nginx, запустите:
sudo systemctl stop nginx
Чтобы запустить его снова, введите:
sudo systemctl start nginx
Чтобы перезапустить службу Nginx:
sudo systemctl restart nginx
Перезагрузите службу Nginx после внесения некоторых изменений в конфигурацию:
sudo systemctl reload nginx
Если вы хотите отключить запуск службы Nginx при запуске:
sudo systemctl disable nginx
И снова активировать его:
sudo systemctl enable nginx
Структура файла конфигурации Nginx и рекомендации
- Все файлы конфигурации Nginx находятся в каталоге
/etc/nginx/
. - Основной файл конфигурации Nginx —
/etc/nginx/nginx.conf
. - Для облегчения обслуживания конфигурации Nginx рекомендуется создать отдельный файл конфигурации для каждого домена.
- Новые файлы блокировки сервера Nginx должны заканчиваться на
.conf
и храниться в каталоге/etc/nginx/conf.d
. Вы можете иметь все необходимые серверные блоки. - Рекомендуется следовать стандартному соглашению об именах, например, если ваше доменное имя
mydomain.com
, ваш файл конфигурации должен называться/etc/nginx/conf.d/mydomain.com.conf
- Если вы используете повторяющиеся сегменты конфигурации в блоках сервера домена, рекомендуется создать каталог с именем
/etc/nginx/snippets
, реорганизовав эти сегменты во фрагменты и включив файл фрагмента в блоки сервера. - Файлы журнала Nginx (
access.log
иerror.log
) находятся в каталоге/var/log/nginx/
. Рекомендуется иметь разные файлы журналовaccess
иerror
для каждого блока сервера. - Вы можете установить корень документа домена в любое место, которое вы хотите. Наиболее распространенные места для веб-рутов включают:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>
/usr/share/nginx/html
Вывод
Поздравляем, вы успешно установили Nginx на свой сервер CentOS 8. Теперь вы готовы начать распространение своих приложений и использовать Nginx в качестве веб-сервера или прокси.
В настоящее время безопасный сертификат является обязательной функцией для всех веб-сайтов. Чтобы защитить свой веб-сайт с помощью бесплатного SSL-сертификата Let’s Encrypt, вы можете ознакомиться с нашим руководством о том, как защитить Nginx с помощью Let’s Encrypt в CentOS 8.