Fixes
This commit is contained in:
133
README.ru.md
133
README.ru.md
@@ -2,21 +2,21 @@
|
||||
|
||||
## Описание
|
||||
|
||||
Плагин для ispmanager дляя поддержки [mod_rewrite](https://github.com/bayrepo/ngx_http_apache_rewrite_module)
|
||||
Плагин для ispmanager для поддержки [mod_rewrite](https://github.com/bayrepo/ngx_http_apache_rewrite_module)
|
||||
|
||||
## Поддерживаемые ОС
|
||||
|
||||
- AlmaLinux 9/10
|
||||
- CentOS Stream 9/10
|
||||
- и подбные RedHat подобные операционные системы
|
||||
- и подобные операционные системы на базе RedHat
|
||||
|
||||
## Описание работы
|
||||
|
||||
Плагин при установке пытается определить установленный nginx и его версию, скачивает необходимые пакеты и исходные коды модуля для nginx, собирает модуль и подкладывает собранные so файл, к модулям nginx.
|
||||
Плагин при установке пытается определить установленный nginx и его версию, скачивает необходимые пакеты и исходные коды модуля для nginx, собирает модуль и подготавливает собранный .so файл, размещая его в каталоге модулей nginx.
|
||||
|
||||
Далее в UI ispmanager можно активировать модуль и подключить для нужных сайтов.
|
||||
Далее в UI ispmanager можно активировать модуль и подключить его для нужных сайтов.
|
||||
|
||||
В пакете установлен хук, которые отслеживает версию nginx пакета и при обнолвлении пересобирает модуль.
|
||||
В пакете установлен хук, который отслеживает версию пакета nginx и при обновлении пересобирает модуль.
|
||||
|
||||
## Логи
|
||||
|
||||
@@ -27,16 +27,16 @@
|
||||
|
||||
## Сборка пакета
|
||||
|
||||
Для сборки пакета требуется наличие docker в ОС, более ничего не нужно.
|
||||
Для сборки пакета rpm плагина для ispmanager, необходимо выполнить следующую команду:
|
||||
Для сборки пакета требуется наличие Docker в ОС, и больше ничего не нужно.
|
||||
Для сборки пакета RPM плагина для ispmanager необходимо выполнить следующую команду:
|
||||
|
||||
```
|
||||
bash build_package.sh almalinux:9
|
||||
```
|
||||
|
||||
Где almalinux:9 - это может быть любой образ rpm-based ОС.
|
||||
Где almalinux:9 – это может быть любой образ RPM‑based ОС.
|
||||
|
||||
Если сборка прошла успешно, в каталоге _packages появятся rpm файлы, пример таких файлов:
|
||||
Если сборка прошла успешно, в каталоге _packages появятся rpm‑файлы, пример таких файлов:
|
||||
|
||||
```
|
||||
_packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.src.rpm
|
||||
@@ -47,9 +47,9 @@ _packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.x86_64.rpm
|
||||
|
||||
## Установка и описание настроек
|
||||
|
||||
Для установки, необходимо установить пакет `ispmanager-plugin-nginx_mod_rewrite_plugin` на машине с уставновленным ispmanager. ispmanager должен быть сконфигурирован поддерживать nginx. Во время установки будут доустановлены, некоторые пакеты.
|
||||
Для установки необходимо установить пакет `ispmanager-plugin-nginx_mod_rewrite_plugin` на машине с установленным ispmanager. ispmanager должен быть сконфигурирован для поддержки nginx. Во время установки будут установлены некоторые пакеты.
|
||||
|
||||
Список пакетов, которые будут достановлены:
|
||||
Список пакетов, которые будут установлены:
|
||||
|
||||
- openssl-devel
|
||||
- pcre-devel
|
||||
@@ -60,9 +60,9 @@ _packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.x86_64.rpm
|
||||
- wget
|
||||
- python3
|
||||
|
||||
Т.к nginx требует сборки любого модуля именно с текущей версией, поэтому модуль собирается именно при установке, детектится версия nginx и под нее происходит сборка.
|
||||
Т.к. nginx требует сборки любого модуля именно с текущей версией, модуль собирается при установке, определяя версию nginx и подстраивая сборку.
|
||||
|
||||
Если же nginx обновляется, то при установке добавляется хук, который при обновлении nginx пересобирает под новый nginx модуль.
|
||||
Если же nginx обновляется, при установке добавляется хук, который при обновлении nginx пересобирает модуль для новой версии.
|
||||
|
||||
Для установки нужно установить собранный в предыдущем пункте пакет:
|
||||
|
||||
@@ -70,40 +70,45 @@ _packages/ispmanager-plugin-nginx_mod_rewrite_plugin-0.0.1-1.el9.x86_64.rpm
|
||||
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`
|
||||
Если установка провалилась, лог можно изучить здесь – `/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log`.
|
||||
|
||||
Если все прошло успешно, то необходимо перейти в раздел "Модули":
|
||||
Если всё прошло успешно, перейдите в раздел «Модули»:
|
||||
|
||||

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

|
||||
|
||||
Для отмены сборки, нажмите кнопку "Отменить сборку". Для сборки и установки хука пересборки при обновлении nginx необходимо нажать "Собать модуль и установить хук на пересборку".
|
||||
Для отмены сборки нажмите кнопку «Отменить сборку». Для сборки и установки хука на пересборку при обновлении nginx нажмите «Собрать модуль и установить хук на пересборку».
|
||||
|
||||
Процесс сборки можно будет изучить в логе: `/usr/local/mgr5/var/nginx-mod-rewrite-plugin.log.
|
||||
Процесс сборки можно изучить в логе: `/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
|
||||
```
|
||||
соответсвенно.
|
||||
соответственно.
|
||||
|
||||
Далее нужно перейти в глобальные настройки модуля:
|
||||
Если нужна внеплановая пересборка модуля, её можно запустить вручную командой:
|
||||
|
||||
```
|
||||
sudo /usr/local/ispmanager-mod_rewrite/utils/build_mod_rewrite.py
|
||||
```
|
||||
|
||||
Далее перейдите в глобальные настройки модуля:
|
||||
|
||||

|
||||
|
||||
Для этого как показано на изображении нужно перети во "Все разделы" и далее найти раздел "mod_rewrite для nginx" и его пункт меню "Настройка модуля nginx".
|
||||
Для этого, как показано на изображении, нужно перейти в раздел «Все разделы» и далее найти раздел «mod_rewrite для nginx» и его пункт меню «Настройка модуля nginx».
|
||||
|
||||
Откроется следующее окно настроек:
|
||||
|
||||
@@ -111,12 +116,82 @@ load_module "/usr/lib64/nginx/modules/ngx_http_apache_rewrite_module.so";
|
||||
|
||||
Где:
|
||||
|
||||
- Добавить модуль 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. Может понадобиться если плагин некорректно работает. В общих лучаях данная галочка должна быть отключена.
|
||||
- **Добавить модуль nginx** – галочка позволяет отключить модуль nginx глобально, то есть в файле `/usr/share/nginx/modules/ngx_http_apache_rewrite_module.conf` закомментируется строка загрузки модуля. Здесь нужно быть осторожным: если есть хоть один сайт с опцией, которую предоставляет модуль, то nginx будет ругаться на неизвестную опцию и не сможет запуститься. Поэтому прежде чем отключать, необходимо отключить на всех сайтах опции mod_rewrite для nginx.
|
||||
|
||||
Включить же mod_rewrite для сайта можно через меню "Сайты":
|
||||
- **Использовать шаблон для настройки сайта** – текущий плагин позволяет двумя способами встроиться в конфигурацию сайта:
|
||||
**Вариант 1** – глобальное включение mod_rewrite для сайта (если галочка не включена).
|
||||
**Вариант 2** – включение mod_rewrite для location через шаблон ispmanager (если галочка включена). О каждом варианте настроек будет рассказано ниже.
|
||||
|
||||
- **Включить вывод дополнительной информации в лог** – если галочка включена, то в лог `/usr/local/mgr5/var/nginx-mod-rewrite-plugin-addon.log` записывается детальная работа самого плагина ispmanager. Может понадобиться, если плагин работает некорректно. В большинстве случаев данная галочка должна быть отключена.
|
||||
|
||||
Включить mod_rewrite для сайта можно через меню «Сайты»:
|
||||
|
||||

|
||||
|
||||
В меню выбрать интересующий сайт и включить галочку "Включить для сайта поддержку mod_rewrite для nginx". И сохранить.
|
||||
В меню выберите интересующий сайт, включите галочку «Включить для сайта поддержку mod_rewrite для nginx» и сохраните.
|
||||
С этого момента модуль будет обрабатывать .htaccess и правила mod_rewrite.
|
||||
|
||||
Предупреждение! Прошу заметить, что директивы `<IfModule>` и директивы, не относящиеся к mod_rewrite, пропускаются.
|
||||
|
||||
**Вариант 1 – глобальное включение mod_rewrite для сайта (если галочка не включена)**
|
||||
|
||||
В данном варианте настроек создаётся персональный файл конфигурации для пользователя `/etc/nginx/vhosts-resources/userX.domain/mod_rewrite.conf`:
|
||||
|
||||
```
|
||||
# cat /etc/nginx/vhosts-resources/userX.domain/mod_rewrite.conf
|
||||
GlobalLocationRewriteEngine on;
|
||||
HtaccessEnable on;
|
||||
```
|
||||
|
||||
Он подключается через стандартные настройки для виртуального хоста ispmanager:
|
||||
|
||||
```
|
||||
cat /etc/nginx/vhosts/userX/userX.domain.conf
|
||||
server {
|
||||
server_name domain;
|
||||
charset off;
|
||||
...
|
||||
include /etc/nginx/vhosts-resources/userX.domain/*.conf;
|
||||
include /etc/nginx/users-resources/userX/*.conf;
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Данный файл настраивает для виртуального хоста перенаправление всех запросов через mod_rewrite.
|
||||
|
||||
**Вариант 2 – включение mod_rewrite для location через шаблон ispmanager (если галочка включена)**
|
||||
|
||||
В данном варианте настроек используется шаблонизация ispmanager.
|
||||
|
||||
С помощью патчей из каталога `/usr/local/ispmanager-mod_rewrite/patches` создаются модифицированные шаблоны для виртуального хоста:
|
||||
|
||||
```
|
||||
/usr/local/mgr5/etc/templates/nginx-vhosts-ssl.template
|
||||
/usr/local/mgr5/etc/templates/nginx-vhosts.template
|
||||
```
|
||||
|
||||
Которыми контрольная панель заменяет шаблоны по умолчанию и при включении галочки «Включить для сайта поддержку mod_rewrite для nginx» для сайта генерируется следующий конфигурационный файл:
|
||||
|
||||
```
|
||||
# cat /etc/nginx/vhosts/userX/userX.domain.conf
|
||||
server {
|
||||
server_name domain;
|
||||
...
|
||||
location / {
|
||||
...
|
||||
RewriteEngine on;
|
||||
}
|
||||
location @php {
|
||||
...
|
||||
RewriteEngine on;
|
||||
}
|
||||
...
|
||||
HtaccessEnable on;
|
||||
}
|
||||
```
|
||||
|
||||
Такой подход позволяет более точно расставлять обработку правил для разных локаций, а также исключать некоторые из них.
|
||||
|
||||
**Дополнительные рекомендации**
|
||||
|
||||
При включённом mod_rewrite для nginx рекомендуется отключить для сайта опцию «Включить обработку ЧПУ», так как она берёт на себя функции mod_rewrite.
|
||||
|
||||
Reference in New Issue
Block a user