Files
ispmanager-mod_rewrite/README.ru.md
Alexey Berezhok 053d60f354 Fixes
2026-07-21 00:50:05 +03:00

123 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ispmanager-mod_rewrite
## Описание
Плагин для ispmanager дляя поддержки [mod_rewrite](https://github.com/bayrepo/ngx_http_apache_rewrite_module)
## Поддерживаемые ОС
- AlmaLinux 9/10
- CentOS Stream 9/10
- и подбные RedHat подобные операционные системы
## Описание работы
Плагин при установке пытается определить установленный nginx и его версию, скачивает необходимые пакеты и исходные коды модуля для nginx, собирает модуль и подкладывает собранные so файл, к модулям nginx.
Далее в UI ispmanager можно активировать модуль и подключить для нужных сайтов.
В пакете установлен хук, которые отслеживает версию nginx пакета и при обнолвлении пересобирает модуль.
## Логи
Файлы логов работы плагина и сборки можно найти по пути:
- /usr/local/mgr5/var/nginx-mod-rewrite-plugin-addon.log
- /usr/local/mgr5/var/nginx-mod-rewrite-plugin.log
## Сборка пакета
Для сборки пакета требуется наличие docker в ОС, более ничего не нужно.
Для сборки пакета rpm плагина для ispmanager, необходимо выполнить следующую команду:
```
bash build_package.sh almalinux:9
```
Где almalinux:9 - это может быть любой образ rpm-based ОС.
Если сборка прошла успешно, в каталоге _packages появятся rpm файлы, пример таких файлов:
```
_packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.src.rpm
_packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.x86_64.rpm
```
На этом сборка окончена.
## Установка и описание настроек
Для установки, необходимо установить пакет `ispmanager-plugin-nginx_mod_rewrite_plugin` на машине с уставновленным ispmanager. ispmanager должен быть сконфигурирован поддерживать nginx. Во время установки будут доустановлены, некоторые пакеты.
Список пакетов, которые будут достановлены:
- openssl-devel
- pcre-devel
- zlib-devel
- gcc
- gcc-c++
- make
- wget
- python3
Т.к nginx требует сборки любого модуля именно с текущей версией, поэтому модуль собирается именно при установке, детектится версия nginx и под нее происходит сборка.
Если же nginx обновляется, то при установке добавляется хук, который при обновлении nginx пересобирает под новый nginx модуль.
Для установки нужно установить собранный в предыдущем пункте пакет:
```
sudo dnf install _packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.x86_64.rpm
```
Если вдруг установка провалилась, лог установки можно изучить здесь - `/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log`
Если все прошло успешно, то необходимо перейти в раздел "Модули":
![Модули](img/isp_mod_rewrite1.png)
Найти модуль с названием "Модуль nginx mod_rewrite" и нажать на значек настройки модуля. На изображении выше обведены синим контуром.
Далее откроется окно сборки модуля:
![Сборка](img/isp_mod_rewrite2.png)
Для отмены сборки, нажмите кнопку "Отменить сборку". Для сборки и установки хука пересборки при обновлении nginx необходимо нажать "Собать модуль и установить хук на пересборку".
Процесс сборки можно будет изучить в логе: `/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log.
Если сборка прошла успешно, то в на сервере появится файл:
```
# cat /usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf
load_module "/usr/lib64/nginx/modules/ngx_http_apache_rewrite_module.so";
```
и файл:
```
/usr/lib64/nginx/modules/ngx_http_apache_rewrite_module.so
```
соответсвенно.
Далее нужно перейти в глобальные настройки модуля:
![Глобальные настройки модуля](img/isp_mod_rewrite3.png)
Для этого как показано на изображении нужно перети во "Все разделы" и далее найти раздел "mod_rewrite для nginx" и его пункт меню "Настройка модуля nginx".
Откроется следующее окно настроек:
![Настройки](img/isp_mod_rewrite4.png)
Где:
- Добавить модуль nginx - галочка позволяет отключить модуль nginx глобально, т.е в файле `/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf` закомментируется строка подгрузки модуля. Здесь нужно быть осторожным, если есть хоть один сайт с опцией, которую приносит модуль, то nginx будет ругаться на неизвестную опцию и не сможет запуститься. Поэтому прежде чем отключать, необходимо отключить на всех сайтах опции mod_rewrite для nginx.
- Использовать шаблон для настройки сайта - текущий плагин, позволяет двумя способами встроиться в конфигурацию сайта. Вариант 1 - глобальное включение mod_rewrite для сайта(есои галочка не включена), Вариант 2 - включение mod_rewrite для location через шаблон ispmanager (если галочка включена). О каждом варианте настроек будет расказоно ниже.
- Включить вывод дополнительной информации в лог - если галочка включена, то в лог файл `/usr/local/mgr5/var/nginx-mod-rewrite-plugin-addon.log` записывается детальная работа самого плагина ispmanager. Может понадобиться если плагин некорректно работает. В общих лучаях данная галочка должна быть отключена.
Включить же mod_rewrite для сайта можно через меню "Сайты":
![Включение для сайта](img/isp_mod_rewrite5.png)
В меню выбрать интересующий сайт и включить галочку "Включить для сайта поддержку mod_rewrite для nginx". И сохранить.