Установите пакеты, необходимые для подключения yum-репозитория:
sudo yum install yum-utils
Для подключения yum-репозитория создайте файл с именем /etc/yum.repos.d/nginx.repo со следующим содержимым:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
По умолчанию используется репозиторий для стабильной версии nginx. Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду:
sudo yum-config-manager --enable nginx-mainline
Чтобы установить nginx, выполните следующую команду:
sudo yum install nginx
При запросе подтверждения GPG-ключа проверьте, что отпечаток ключа совпадает с 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62, и, если это так, подтвердите его.
Затем запускаем Nginx и добавляем его в автозагрузку:
systemctl start nginx
systemctl enable nginx
Разрешаем HTTP (ну или HTTPS) подключение в брандмауэре:
firewall-cmd --add-service=http
firewall-cmd --permanent --add-service=http
И проверяем работу веб-сервера введя в адресной строке браузера ip-адрес сервера. Должна открыться начальная страница Nginx.
Настройка серверных блоков.
Nginx установлен и работает. Но этого достаточно только если на веб-сервере будет работать только один сайт. Если планируется организовать работу более одного сайта, то необходимо настроить Nginx и создать серверные блоки для каждого сайта. Для этого открываем для редактирования файл конфигурации веб-сервера:
nano /etc/nginx/nginx.conf
И приводим его к виду:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
#Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
}
Теперь создадим каталог в котором будут храниться данные сайтов:
mkdir -p /var/www
Скопируем туда данные начальной страницы Nginx:
cp -r /usr/share/nginx/html /var/www
И настроим права на данный каталог:
chown -R nginx:nginx /var/www/html
chmod -R 775 /var/www/html
Создадим папку для хранения конфигурации серверного блока:
mkdir -p /etc/nginx/default.d/
Далее создадим файл конфигурации серверного блока по умолчанию:
nano /etc/nginx/default.d/default.conf
И приведем его к виду:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm;
server_name 10.24.3.32;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Перезапускаем Nginx и проверяем работу:
systemctl restart nginx
Все работает. Теперь создадим серверный блок. Я буду создавать тестовый сайт с доменным именем netflow.by. Первым делом создадим директорию для хранения файлов сайта:
mkdir /var/www/html/netflow.by
Создадим в ней файл сайта index.html:
nano /var/www/html/example.com/index.html
И заполним каким-нибудь содержимым:
Привет мир!
Теперь создадим файл конфигурации серверного блока:
nano /etc/nginx/conf.d/netflow.conf
И заполним содержимым:
server {
listen 80;
listen [::]:80;
root /var/www/html/netflow.by;
index index.html;
server_name netflow.by www.netflow.by;
location / {
}
}
Задаем права:
chown -R nginx:nginx /var/www/html/netflow.by
chmod -R 775 /var/www/html/netflow.by
И проверяем работу серверного блока. Для этого в адресной строке браузера вводим доменное имя сайта, для которого создавался серверный блок.
Обратите внимание, что бы сайт отобразился по доменному имени необходимо иметь настроенную DNS зону для глобального доменного имени или внести изменения в файл hosts для локального тестирования.