如何从nginx迁移到Angie#
如果您正在从nginx切换到Angie,恭喜! 我们为您准备了一份指南。
请注意,该指南是为依赖Angie软件包版本的基本替换场景量身定制的。
如果您正在处理:ref:容器 <docker_images>、
虚拟机、自定义路径或:ref:模块 <install-dynamicmodules>,
您需要相应地进行调整。 我们建议使用 我们的仓库 中的官方软件包;
请参阅您操作系统的安装说明以安装Angie,
但在实际启动之前请停止。
相反,运行 sudo angie -V 以确保一切正常: 正如此输出所示,
当Angie从软件包安装时,配置
位于 Angie通常需要对现有的nginx配置进行最小的更改。 将整个nginx配置复制到 我们假设nginx将其配置存储在 按Angie期望的方式重命名主配置文件: 更新整个Angie配置中的路径,
从主配置文件开始。
细节根据nginx的安装方式而有所不同,
但至少您需要更新以下部分。 任何仍指向 对Angie进程管理至关重要的 PID 文件: 如果使用类似 接下来,重新创建 列出原始虚拟主机文件,例如: 注意它们的实际位置;
在这里,它是 如果您之前没有将它们复制到 最后,重新创建每个符号链接: 查找并 安装 所有在nginx配置中引用的动态模块的Angie对应模块,例如: 这意味着您需要安装 有两种流行的方法来包含动态模块配置: 如果通过 接下来,复制模块配置文件: 最后,修改每个文件中的 load_module 路径: 如果使用 接下来,重新创建 列出原始模块配置文件,例如: 注意它们的实际位置;
在这里,它是 将它们复制到 最后,重新创建每个符号链接: 如果 root 指令引用的目录是类似 复制目录并更新Angie配置中的 虽然可以保持 user 指令不变,
但您可以使用Angie的单独帐户以获得更多灵活性。 更新Angie配置中的 接下来,更改*所有*配置文件的所有者,
包括 如果Angie配置定义了 root 指令,
也要更改相应目录的所有者,例如: 为了确保您没有遗漏任何内容,
查找并修复Angie配置中剩余的 既然您已更新Angie配置,
下一步是验证其语法以确保Angie实际上可以使用它,
然后执行切换。
检查Angie是否可以运行更新的配置: 命令解析配置并报告阻止Angie启动的问题;
修复任何问题并重新运行。 为了将停机时间降到最低,请在停止nginx后立即启动Angie: 可选地,启用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配置#
/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 路径:# 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/
包含动态模块,
更新路径:# 加载动态模块。请参阅/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
设置:$ sudo rsync -a /usr/share/nginx/html/ /usr/share/angie/html/
# root /usr/share/nginx/html;
root /usr/share/angie/html;
用户和组(可选)#
user
设置:# 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
出现:$ 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额外功能#