Репозиторий nginx astra linux

Аннотация

В данной статье представлена инструкция по установке web-сервера NGINX. Web-сервера NGINX (пакет nginx) доступен в составе расширенного репозитория Astra Linux Special Edition x.7 (см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования ).

Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.

При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере) [п. 7.2 РукКСЗ1]. При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном [п. 7.2.1] или выделенном [п. 7.2.7] уровне МКЦ.

Что такое NGINX

Общая информация

NGINX (читается [engine x]) — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения, выполняющий следующие функции:

  • Основная функциональность HTTP-сервера:
    • Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
    • Акселерированное обратное проксирование с кэшированием, распределение нагрузки и отказоустойчивость;
    • Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием, распределение нагрузки и отказоустойчивость;
    • Модульность;
    • Фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; параллельная обработка подзапросов на одной странице в SSI-фильтре через прокси или FastCGI/uwsgi/SCGI;
    • Поддержка SSL и расширения TLS SNI;
    • Поддержка HTTP/2 с приоретизацией на основе весов и зависимостей;
    • Виртуальные серверы, определяемые по IP-адресу и имени;
    • Поддержка keep-alive и pipelined соединений;
    • Настройка форматов журналов, буферизованная запись в журналы, быстрая ротация журналов, запись журналов в syslog;
    • Специальные страницы для ошибок 3xx-5xx;
    • rewrite-модуль: изменение URI с помощью регулярных выражений;
    • Выполнение разных функций в зависимости от адреса клиента;
    • Ограничение доступа в зависимости от адреса клиента, по паролю (HTTP Basic аутентификация) и по результату подзапроса;
    • Проверка HTTP referer;
    • Методы PUT, DELETE, MKCOL, COPY и MOVE;
    • FLV и MP4 стриминг;
    • Возможность ограничения скорости отдачи ответов;
    • Возможность ограничение числа одновременных соединений и запросов с одного адреса;
    • Геолокация по IP-адресу;
    • A/B-тестирование;
    • Зеркалирование запросов;
    • Встроенный Perl;
    • Сценарный язык njs;
    • Перенаправление пользователей на IMAP- или POP3-серверы с использованием внешнего HTTP-сервера аутентификации;
    • Аутентификация пользователей с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
    • Поддерживаемые методы аутентификации:
      • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
      • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
      • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
      • Проксирование TCP и UDP;
      • Поддержка SSL и расширения TLS SNI для TCP;
      • Распределение нагрузки и отказоустойчивость;
      • Ограничение доступа в зависимости от адреса клиента;
      • Выполнение разных функций в зависимости от адреса клиента;
      • Ограничение числа одновременных соединений с одного адреса;
      • Настройка форматов журналов, буферизованная запись в журналы, быстрая ротация журналов, запись журналов в syslog;
      • Геолокация по IP-адресу;
      • A/B-тестирование;
      • Сценарный язык njs;
      • Один главный и несколько рабочих процессов, рабочие процессы работают под непривилегированным пользователем;
      • Изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
      • Поддержка kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select и poll:
        • Использование возможностей, предоставляемых kqueue, таких как EV_CLEAR, EV_DISABLE (для временного выключения события), NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
        • Использование возможностей, предоставляемых epoll, таких как EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) и EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);

        Оригинальная документация NGINX

        Оригинальная документация NGINX доступна по ссылке: https://nginx.org/ru/

        Установка NGINX

        Для установки пакета nginx:

          Подключить репозитории:

            актуальное оперативное обновление расширенного репозитория;

          Источник

          Собираем Nginx из исходного кода в Astra Linux с поддержкой OpenSSL 3.0.3

          Доступной версией Nginx в Astra Linux является версия 1.14.1 , но вам, возможно, вам может потребоваться свежая версия, на момент написания статьи это 1.20.2 . В репозитории Astra Linux находится на данный момент немного устаревшая версия библиотеки libssl-dev , версии 1.1.1k . Мы будем сразу использовать новую версию ветки OpenSSL 3 (3.0.3) , она будет поддерживаться до 7 сентября 2026 . К тому же у вас могут возникнуть проблемы со сборкой последней версии Nginx при использовании OpenSSL 1.1.1k . Сегодня мы рассмотрим сборку из исходного кода web-сервера Nginx на Astra Linux с поддержкой OpenSSL 3.0.3 .

          Установка

          sudo apt update sudo apt upgrade sudo apt install build-essential git perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev zlib1g-dev libssl1.0-dev libpcre2-dev libpcre2-posix0 mercurial wget libpcre3-dev
          cd ~ hg clone http://hg.nginx.org/nginx -r stable-1.20 ~/nginx

          Для сборки нам потребуется свежая версия OpenSSL так как с версиями ветки 1 у меня возникли проблемы со сборкой Nginx .

          Загрузка исходного кода OpenSSL 3.0.3

          cd ~/nginx wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.3.tar.gz
          echo 'ee0078adcef1de5f003c62c80cc96527721609c6f3bb42b7795df31f8b558c0b openssl-3.0.3.tar.gz' | tee openssl-3.0.3.tar.gz.sha256 sha256sum --check openssl-3.0.3.tar.gz.sha256 openssl-3.0.3.tar.gz: ЦЕЛ 

          Конфигурирование и сборка nginx

          ./auto/configure \ --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --modules-path=/usr/lib/nginx/modules \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --builddir=nginx-astra-linux \ --with-select_module \ --with-poll_module \ --with-threads \ --with-file-aio \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_xslt_module=dynamic \ --with-http_image_filter_module=dynamic \ --with-http_geoip_module=dynamic \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_auth_request_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_degradation_module \ --with-http_slice_module \ --with-http_stub_status_module \ --with-http_perl_module=dynamic \ --with-http_ssl_module \ --with-pcre \ --with-pcre-jit \ --with-openssl=./openssl-3.0.3
          sed -e "s|%%PREFIX%%|/etc/nginx|" \ -e "s|%%PID_PATH%%|/var/run/nginx.pid|" \ -e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \ -e "s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|" \ < docs/man/nginx.8 >nginx-astra-linux/nginx.8 make[1]: выход из каталога «/home/user/nginx»
          sudo nginx -v nginx version: nginx/1.20.2
          sudo nginx -V nginx version: nginx/1.20.2 built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) built with OpenSSL 3.0.3 3 May 2022 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --builddir=nginx-astra-linux --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-http_ssl_module --with-pcre --with-pcre-jit --with-openssl=~/openssl-3.0.3

          Запускаем nginx как службу

          sudo mcedit /lib/systemd/system/nginx.service
          [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
          sudo systemctl enable nginx sudo systemctl daemon-reload
          sudo systemctl start nginx

          Заключение

          Сегодня мы рассмотрели сборку из исходного кода web-сервера nginx с поддержкой последней версии openssl 3.0.3 . Установили требуемые пакеты Загрузили исходный код Nginx и Openssl . Сконфигурировали и произвели сборку nginx Установили web-сервер и проверили версию и его конфигурацию. Запустили сервер как службу. Проверили загрузку тестовой страницы.

          Источник

          Читайте также:  Run linux vmware player
Оцените статью
Adblock
detector