Введение.
В операционной среде Linux существует несколько веб серверов для работы с приложениями, использующих в качестве клиентов браузеры. Одним из них является Nginx (энджи́нкс) — лёгкий и быстрый веб-сервер может работать как HTTP движок или в качестве прокси, для «тяжёлых» веб-серверов Apache, IIS. Сервер занимает, в ресурсном сегменте IT приложений, основное место для различных интернет площадок, работает под BSD лицензией. В статье блога рассмотрены вопросы базовой установки сервера для обслуживания HTTP запросов на «слабом» оборудовании.
Функциональность Nginx.
Сервер может использоваться для:
- индексирования запросов
- кеширования основного сервера
- распределения нагрузки серверов
- создания виртуальных серверов по IP адресам
- узла выполняющего геолокацию по IP адресам
- как ретранслятор для IMAP и POP3 запросов
Архитектура.
В качестве модели архитектуры, использует модульную систему — один главный и несколько рабочих процессов. Рабочие процессы, запускаются под непривилегированным пользователем. Самое простое использование сервера — отвечать на html запросы, с помощью одного модуля, как будет показанное ниже.
- Стенд:
- ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;
Установка.
В качестве стенда, выберем сервер минимальной конфигурации на котором установим следующие пакеты.
# apt-get update
# apt-get install nginx
Настройка Nginx.
Основные настройки проводятся в файле конфигурации каталога Nginx. Мы сначала покажем классическую схему настройки сервера для ответов на запросы html.
Каталоги и файлы Nginx.
- /etc/nginx/ — домашний каталог
- /etc/nginx/nginx.conf — каталог настроек сервера
- /usr/local/nginx/logs/nginx.pid — каталог главного процесса
- /etc/nginx/sites-available.d — каталог настроек сайта
- /etc/nginx/sites-enabled.d/ — каталог запуска сайта
- /var/log/nginx — каталог журналов
- ps -ax | grep nginx — процессы
Сценарий работы сайта.
Для начала рассмотрим базовый файл настроек сервера, расположенного в /etc/nginx/nginx.conf
# cat /etc/nginx/nginx.conf
# load dynamic nginx modules
include /etc/nginx/modules-enabled.d/*.conf;
# see http://nginx.net for info & docs
worker_processes 10;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
}
include /etc/nginx/conf-enabled.d/*.conf;
http {
proxy_temp_path /var/spool/nginx/tmp/proxy;
fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
client_body_temp_path /var/spool/nginx/tmp/client;
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
# text/html doesn't need to be defined there, it's compressed always
gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;
# gzip_comp_level 9;
include /etc/nginx/sites-enabled.d/*.conf;
}
Из файла видно, что основных процессов 10, число соединений 1024, так же указаны рабочие каталоги журналов и исполняемых файлов.
Теперь создадим простой стендовый сайт, для этого в /etc/nginx/sites-available.d поместим файл nglab.conf.
# cd /etc/nginx/sites-available.d/
# touch nglab.conf
Запишем в файл nglab.conf первый кодовый блок.
server {
listen 80;
server_name localhost .local 10.0.2.11;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
root /var/www/html/;
autoindex on;
}
}
Создадим символическую ссылку для nglab.conf в рабочем каталоге /etc/nginx/sites-enabled.d/
ln -s /etc/nginx/sites-available.d/nglab.conf /etc/nginx/sites-enabled.d/nglab.conf
Управление Nginx.
Система управления сервером определяется стандартными командами Linux и «родными» командами Nginx, для исполняемого файла.
# systemctl start|stop|restart|status nginx
# systemctl enable|disable|is-enabled nginx
# ps -ax | grep nginx
Команды для исполняемого файла предполагают, что сервер работает и отвечает на запросы. Выделим из списка ряд практических команд, которые чаще всего используются в работе.
- nginx -s stop остановка сервера
- nginx -s reload перезапуск настроек сервера
- nginx -T проверка конфигурации, полная
- nginx -t проверка конфигурации, краткая
- nginx -h справочная информация
Для примера приведём одну из команд.
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfu
Работа с сайтом.
Подготовительные действия выполнены, остаётся в рабочий каталог сервера, /var/www/html, поместить файл index.html.
<html><body><h1>It works! Nginx</h1></body></html>
Набрав нужный адрес в браузере убедимся, что всё работает.

Дополнив файл настроек секцией для фото, создадим галерею снимков.
# mkdir /var/www/html/images
# nginx -s reload
server {
listen 80;
server_name localhost .local 10.0.2.11;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
root /var/www/html/;
}
location /images/ {
root /var/www/html/;
}
}
Поместим в каталог images файл foto.jpg и отредактируем index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Галерея</title>
</head>
<body>
<p><a href="images/foto.jpg" target="_blank" dir="ltr">Вид красивого моста через реку. </a></p>
</body>
</html>
Вызываем в браузере веб сервер и щёлкаем по надписи.
Права доступа.
Права доступ к каталогам и файлам веб-сервера.
# chmod 755 /var/www/html
# chmod 644 /var/www/html/index.html
# chmod 755 /var/www/html/images
# chmod 644 /var/www/html/images/foto.jpg
# chown -R _nginx._nginx /var/www/html
Заключение.
В статье были показаны основные, базовые понятия, установки и настройке веб сервера Nginx с помощью ALT Linux. Администратор или опытный пользователь может без труда повторить, все действия описанные выше. На базе изложенного можно создавать простой информационный сайт, обладающий надёжностью, низкой стоимостью и скоростью. Одно из достоинств такого сайта — возможность использования его на очень «слабых» компьютерах и серверах. В следующей статье блога, будет рассказано о работе сервера с CMS Joomla.
Полезные ссылки.
- Учебник HTML
- Сайт Nginx
- Самоучитель HTML