Миграция с nginx на Angie#
Если вы переходите с nginx на Angie, поздравляем! У нас есть руководство для вас.
Имейте в виду, что оно предназначено для базового сценария замены,
который полагается на пакетную версию Angie.
Если вы работаете с контейнерами,
виртуальными машинами, нестандартными путями или
модулями,
вам потребуется дополнительная подстройка. Рекомендуем использовать официальные пакеты
из наших репозиториев;
см. шаги по установке Angie для вашего дистрибутива.
Пока не запускайте сервер;
вместо этого проверьте его командой sudo angie -V: Как следует отсюда,
конфигурация
находится в Angie обычно требует минимальных изменений в существующей конфигурации nginx. Скопируйте конфигурацию nginx в Предположим, конфигурация nginx хранится в Переименуйте основной файл конфигурации так, как ожидает Angie: Поправьте пути во всей конфигурации Angie,
начиная с основного файла конфигурации.
Детали зависят от того, как был установлен nginx,
но, по крайней мере, необходимо обновить следующее. Любые пути include, которые пока указывают на Файл PID, который важен для управления процессами Angie: Наконец,
журнал обращений и журнал ошибок: Если для включения виртуальных хостов используется директория
Затем воссоздайте символические ссылки в Перечислите исходные файлы виртуальных хостов, например: Обратите внимание на их фактическое расположение;
здесь это Если вы не копировали их ранее в Наконец, воссоздайте каждую символическую ссылку: Найдите и установите
используемые в Angie аналоги для всех динамических модулей,
упомянутых в конфигурации nginx, например: Это означает, что вам нужно установить пакет Есть два популярных способа включения конфигурации динамических модулей: Если динамические модули включены через Затем скопируйте файлы конфигурации модулей: Наконец, измените путь load_module в каждом файле: Если динамические модули включены через
Затем воссоздайте символические ссылки в Перечислите исходные файлы конфигурации модулей, например: Обратите внимание на их фактическое расположение;
здесь это Скопируйте их в Наконец, воссоздайте каждую символическую ссылку: Если root указывает на директорию
Скопируйте директорию и исправьте значение Хотя директиву user достаточно оставить как есть,
для гибкости можно использовать учетные записи Angie. Поправьте настройки Измените владельца всех файлов конфигурации,
включая файлы в Если в конфигурации Angie есть директивы root,
измените владельца указанных там директорий,
например: Чтобы ничего не пропустить,
найдите и исправьте оставшиеся упоминания Обновив конфигурацию Angie,
следующим шагом проверьте ее синтаксис,
чтобы убедиться, что Angie может с ней работать,
а затем переключиться.
Проверьте, что Angie воспринимает новую конфигурацию: Эта команда анализирует конфигурацию
и сообщает об ошибках, которые блокируют запуск Angie;
исправьте все проблемы и перезапустите команду. Чтобы минимизировать простой, запустите Angie сразу после остановки nginx: При необходимости включите службу Angie для запуска после перезагрузки: Миграция завершена! На этом все; вы великолепны. Убедившись, что Angie работает стабильно,
можно отключить или удалить nginx, чтобы избежать конфликтов. Минимум того, что вы можете сделать, — это отключить службу: Можно предположить, что миграция нужна вам не просто так.
Почему бы не пойти дальше и не настроить некоторые из дополнительных функций,
которые есть в Angie и Angie PRO,
но нет в nginx?Установка Angie#
$ sudo angie -V
Angie version: Angie/1.8.2
nginx version: nginx/1.27.3
built by gcc 11.4.0
configure arguments: --prefix=/etc/angie --conf-path=/etc/angie/angie.conf ...
/etc/angie/
,
когда Angie устанавливается из пакета.Обновление конфигурации Angie#
/etc/angie/
целиком:$ sudo rsync -a --no-links /etc/nginx/ /etc/angie/
/etc/nginx/
;
измените шаги, если у вас другой путь.$ sudo mv /etc/angie/nginx.conf /etc/angie/angie.conf
/etc/nginx/
:# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/default.d/*.conf;
# include /etc/nginx/http.d/*.conf;
# include /etc/nginx/stream.d/*.conf;
include /etc/angie/conf.d/*.conf;
include /etc/angie/default.d/*.conf;
include /etc/angie/http.d/*.conf;
include /etc/angie/stream.d/*.conf;
# include /etc/nginx/sites-enabled/*;
include /etc/angie/sites-enabled/*;
# include /etc/nginx/modules-enabled/*;
include /etc/angie/modules-enabled/*;
# include /etc/nginx/mime.types;
include /etc/angie/mime.types;
# pid /var/run/nginx.pid;
# -- или --
# pid /run/nginx.pid;
pid /run/angie.pid;
# access_log /var/log/nginx/access.log;
access_log /var/log/angie/access.log;
# error_log /var/log/nginx/error.log;
error_log /var/log/angie/error.log;
Виртуальные хосты#
sites-enabled/
, поправьте и ее:# include /etc/nginx/sites-enabled/*;
include /etc/angie/sites-enabled/*;
/etc/angie/sites-enabled/
,
чтобы все работало.$ ls -l /etc/nginx/sites-enabled/
default -> /etc/nginx/sites-available/default
/etc/nginx/sites-available/
./etc/angie/
,
скопируйте сейчас:$ sudo rsync -a /etc/nginx/sites-available/ /etc/angie/sites-available/
$ sudo ln -s /etc/angie/sites-available/default \
/etc/angie/sites-enabled/default
Динамические модули#
$ sudo nginx -T | grep load_module
load_module modules/ngx_http_geoip2_module.so;
load_module modules/ngx_stream_geoip2_module.so;
...
angie-module-geoip2
,
и так далее./usr/share/nginx/modules/
,
поправьте путь:# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
# include /usr/share/nginx/modules/*.conf;
include /usr/share/angie/modules/*.conf;
$ sudo rsync -a /usr/share/nginx/modules/ /usr/share/angie/modules/
# load_module "/usr/lib64/nginx/modules/ngx_http_geoip2_module.so";
load_module "/usr/lib64/angie/modules/ngx_http_geoip2_module.so";
/etc/nginx/modules-enabled/
,
поправьте путь:# include /etc/nginx/modules-enabled/*.conf;
include /etc/angie/modules-enabled/*.conf;
/etc/angie/modules-enabled/
,
чтобы все работало.$ ls -l /etc/nginx/modules-enabled/
mod-http-geoip2.conf -> /usr/share/nginx/modules-available/mod-http-geoip2.conf
/usr/share/nginx/modules-available/
./usr/share/angie/
:$ sudo rsync -a /usr/share/nginx/modules-available/ /usr/share/angie/modules-available/
$ sudo ln -s /usr/share/angie/modules-available/mod-http-geoip2.conf \
/etc/angie/modules-enabled/mod-http-geoip2.conf
Корневая директория (необязательно)#
/usr/share/nginx/html/
,
можно изменить директиву, указав на Angie.root
в конфигурации Angie:$ sudo rsync -a /usr/share/nginx/html/ /usr/share/angie/html/
# root /usr/share/nginx/html;
root /usr/share/angie/html;
Пользователь и группа (необязательно)#
user
в конфигурации Angie:# user www-data www-data;
user angie angie;
/usr/share/angie/
,
например:$ sudo chown -R angie:angie /etc/angie/
$ sudo chown -R angie:angie /usr/share/angie/
$ sudo chown -R angie:angie /var/www/html/
Завершение#
nginx
в конфигурации Angie:$ grep -rn --include='*.conf' 'nginx' /etc/angie/
Тестирование и переключение#
$ sudo angie -t
Остановка nginx, запуск Angie#
$ sudo systemctl stop nginx && sudo systemctl start angie
$ sudo systemctl enable angie
Отключение nginx#
$ sudo systemctl disable nginx
Настройка функций Angie#