Введение.
Надеюсь читатели имеют представление о всех возможностях использовании веб-сервера Nginx, если нет, посмотрите полезные ссылки. Продолжая изучать Nginx, остановимся на рассмотрении использования его в качестве Proxy для HTTP запросов. Теория Proxy многогранна, но основным является — перенаправление запросов пользователей на узловое устройство, для доступа к ресурсам общего доступа, например в Интернет.
Подготовка.
- Стенд:
- ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;
- mysql 8.0.xx
- php8.1.x
- Альт Рабочая станция К, имя: lin-kw, IP=10.0.2.10
Для работы серверу Nginx, требуется поддержка интерпретатора языка PHP — FastCGI.
FastCGI — протокол взаимодействия веб-сервера и php приложений.
В модуль FastCGI входит пакет FPM — Fast Process Manager, управляющий PHP запросами с помощью FastCGI протокола. Менеджер PHP-FPM контролирует количество процессов PHP и частоту их создания.
Текущею версию PHP можно узнать с помощью команды.
# php -v
Установка и запуск менеджера php-fpm.
# apt-get update
# apt-get install php8.1-fpm-fcgi
# systemctl start|stop|restart|status php8.0-fpm
# systemctl enable php8.1-fpm
Настройка.
Настройку Proxy Nginx будем осуществлять из логики работы организации, в которой используется внутренняя LAN сеть и внешняя WAN с выходом в интернет. Выполняя требования ФЗ, эти две сети не связаны между собой. Для работы с Интернет выделен nginx сервер, имеющий подключение к внешней WAN сети. Все рабочие станции, в сети WAN, могут иметь соединение с интернет, только через Nginx Proxy.
Установка Nginx Proxy.
В качестве стенда выберем сервер минимальной конфигурации, на котором установим следующие пакеты.
# apt-get update
# apt-get install nginx
Подробная инструкция настройки Nginx, см. полезные ссылки.
Конфигурация Proxy.
Для начала в каталоге /etc/nginx/sites-available.d/ создадим файл настроек proxy.conf.
# cd /etc/nginx/sites-available.d/
# touch proxy.conf
Запишем в него инструкцию, переводящая сервер в режим Nginx Proxy.
server {
listen 8000;
server_name 127.0.0.1;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
proxy_pass http://10.0.2.11;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Инструкция небольшая, в дальнейшем, при желании, можно дополнить необходимыми директивами и переменными см.полезные ссылки. Листинг сценария можно использовать, как базовую конфигурацию Nginx Proxy.
- listen — порт прослушивающий Nginx
- server_name — имя или ip сервера Nginx
- proxy_pass — протокол прокси для Nginx
- proxy_set_header — передача заголовка
- Host $host — переменная, заголовок сервера
- X-Forwarded-For — заголовок запроса
- $proxy_add_x_forwarded_for — переменная = $remote_addr
- X-Real-IP — меняет ip на переданный
- $remote_addr — адрес клиента
Создадим ссылку на рабочий каталог, перегрузим nginx.
# ln -s /etc/nginx/sites-available.d/proxy.conf /etc/nginx/sites-enabled.d/proxy.conf
# nginx -s reload
Как работает Nginx Proxy.
Работает сценарий Nginx Proxy следующим образом. В организации все ПК включённые в сеть WAN не имеют выход в Интернет. Сервер lin-nginx подключён к интернет, через выделенный ip 10.0.2.11 (стендовое значение), является шлюзом прокси для всех ПК настроенных на него. Сервер lin-nginx контролирует работу клиентских станций, осуществляет запись в журнале о всех действиях подключённых к нему клиентов Интернет.
Настройка ПК.
После того, как сервер Nginx Prox был успешно создан, протестирован и запущен, переходим к настройкам на стороне ПК. Откройте свой любимый браузер и выполните действия, как показано ниже, не забудьте указать порт и ip адрес Nginx Proxy. Чтобы попасть в окно режима сетевых настроек, например браузера Firefox, пройдите путь -/Настройки/Параметры сети/Настроить
Выполните настройки браузера на всех рабочих станциях организации, которым необходим выход в Интернет.
Заключение
Современные условия безопасной работы организации, требует выполнения ряда требований ФЗ предъявляемых коммерческим предприятиям и гос.органам. Решение вопросов безопасного доступа к Интернет для сетевых устройств предприятия, можно осуществлять используя технологию прокси, применяя для этого серверные платформы входящие в перечень разрешённых программных продуктов. Инструкция, приведённая в примере является рабочей, её можно использовать, а при желании расширить дополнительным синтаксисом. Необходимо, только учитывать — дополнительный код, ТРЕБУЕТ дополнительных серверных ресурсов.
Полезные ссылки.
- Знакомство с Nginx
- Модули Nginx
- Joomla и Nginx
- WordPress и Nginx