123 lines
7.5 KiB
Markdown
123 lines
7.5 KiB
Markdown
# 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`
|
||
|
||
Если все прошло успешно, то необходимо перейти в раздел "Модули":
|
||
|
||

|
||
|
||
Найти модуль с названием "Модуль nginx mod_rewrite" и нажать на значек настройки модуля. На изображении выше обведены синим контуром.
|
||
|
||
Далее откроется окно сборки модуля:
|
||
|
||

|
||
|
||
Для отмены сборки, нажмите кнопку "Отменить сборку". Для сборки и установки хука пересборки при обновлении 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
|
||
```
|
||
соответсвенно.
|
||
|
||
Далее нужно перейти в глобальные настройки модуля:
|
||
|
||

|
||
|
||
Для этого как показано на изображении нужно перети во "Все разделы" и далее найти раздел "mod_rewrite для nginx" и его пункт меню "Настройка модуля nginx".
|
||
|
||
Откроется следующее окно настроек:
|
||
|
||

|
||
|
||
Где:
|
||
|
||
- Добавить модуль 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 для сайта можно через меню "Сайты":
|
||
|
||

|
||
|
||
В меню выбрать интересующий сайт и включить галочку "Включить для сайта поддержку mod_rewrite для nginx". И сохранить.
|