运行时控制#
要启动 Angie,请使用 systemd 执行以下命令:
$ sudo service angie start
建议事先检查配置语法。方法如下:
$ sudo angie -t && sudo service angie start
重新加载配置:
$ sudo angie -t && sudo service angie reload
停止 Angie:
$ sudo service angie stop
安装后,运行以下命令以确保 Angie 已启动并正在运行:
$ curl localhost:80
备注
开源版本 Angie 的运行方法可能因安装方式而异。
Angie 有一个主进程和多个工作进程。主进程负责读取和评估配置,并维护工作进程。工作进程处理实际的请求。Angie 使用基于事件的模型和依赖于操作系统的机制,在工作进程之间高效分配请求。工作进程的数量在配置文件中定义,可以针对给定配置固定,也可以根据可用 CPU 核心数自动调整(参见 worker_processes)。
配置后,Angie 还会在退出前将某些共享内存区域(目前是 proxy_cache_path 中的 也可以使用信号来控制 Angie。默认情况下,主进程的进程 ID 会写入文件 快速关闭 优雅 关闭 重新加载配置,更新时区(仅适用于 FreeBSD 和 Linux),使用更新后的配置启动新的工作进程,:ref:优雅 <worker_shutdown_timeout> 关闭旧的工作进程 重新打开日志文件 升级可执行文件 优雅 关闭工作进程 您可以使用 kill 发送信号: 也可以使用信号控制单个工作进程,尽管这是可选的。支持的信号有: 快速关闭 优雅 关闭 重新打开日志文件 用于调试的异常终止(需要启用 debug_points) 为了让 Angie 重新读取配置文件,应向主进程发送 Angie 跟踪每个进程的配置更改。代数从服务器首次启动时的 1 开始。这些数字随着每次配置重新加载而递增,并在进程标题中可见: 成功重新加载配置后(无论是否有实际更改),Angie 会为接收到新配置的进程递增代数: 如果前几代的任何工作进程继续运行,它们将立即可见: 备注 不要将配置代数与"进程编号"混淆;出于实际目的,Angie 不使用连续的进程编号。 要轮转日志文件,首先重命名文件。然后,向主进程发送 要升级服务器可执行文件,首先用新文件替换旧的可执行文件。然后,向主进程发送 请注意,旧的主进程不会关闭其监听套接字,如有必要,可以管理它以重新启动其工作进程。如果新的可执行文件未按预期执行,您可以采取以下操作之一: 向旧的主进程发送 向新的主进程发送 如果新的主进程退出,旧的主进程将从带有进程 ID 的文件名中删除 如果升级成功,向旧的主进程发送 配置后,Angie 还会在升级前将某些共享内存区域(目前是 proxy_cache_path 中的 显示命令行参数的帮助信息,然后退出。 显示有关构建环境的辅助信息,然后退出。 使用 file 作为配置文件,而不是使用 默认文件。 使用 file 作为错误日志文件,而不是使用 默认文件。特殊值 设置 全局配置指令,
例如: 显示内置模块( 为 如果设置了 向主进程发送 信号:
测试配置文件,然后退出。Angie 检查
配置语法,递归包含其中提到的文件。 与 显示 Angie 版本,然后退出。 显示 Angie 版本、编译器版本、构建时间
以及使用的 构建参数,然后退出。keys_zone)刷新到磁盘,以便新的主进程可以恢复它们,从而提高性能。如果由于区域大小更改、二进制版本不兼容或其他原因导致恢复失败,Angie 将记录警告(failed to restore zone at address),并且不会使用区域恢复机制。使用信号#
/run/angie.pid。此文件名可以在配置时或在 angie.conf 中使用 pid 指令更改。主进程支持以下信号:TERM、INTQUITHUPUSR1USR2WINCH$ sudo kill -QUIT $(cat /run/angie.pid)
TERM、INTQUITUSR1WINCH更改配置#
HUP 信号。主进程首先检查语法有效性,然后尝试应用新配置,包括打开新的日志文件和监听套接字。如果应用新配置失败,主进程将回滚更改并继续使用旧配置运行。如果应用成功,主进程将启动新的工作进程,并向旧的工作进程发送消息,请求它们 优雅 关闭。旧的工作进程关闭其监听套接字并继续为现有客户端提供服务。在所有客户端都得到服务后,旧的工作进程将关闭。$ sudo angie
$ ps aux | grep angie
angie: master process v1.11.1 #1 [angie]
angie: worker process #1
$ sudo kill -HUP $(cat /run/angie.pid)
$ ps aux | grep angie
angie: master process v1.11.1 #2 [angie]
angie: worker process #2
$ ps aux | grep angie
angie: worker process #1
angie: worker process #2
轮转日志文件#
USR1 信号。主进程将重新打开所有当前打开的日志文件,并将它们分配给运行工作进程的非特权用户。成功重新打开文件后,主进程关闭所有打开的文件并通知工作进程重新打开其日志文件。工作进程也将立即打开新文件并关闭旧文件。因此,旧文件几乎立即可用于后处理,例如压缩。在线升级可执行文件#
USR2 信号。主进程将把其当前带有进程 ID 的文件重命名为带有 .oldbin 后缀的新文件,例如 /usr/local/angie/logs/angie.pid.oldbin,然后启动新的可执行文件,新可执行文件又会启动新的工作进程。HUP 信号。这将在不重新读取配置的情况下启动新的工作进程。然后,您可以通过向新的主进程发送 QUIT 信号来 优雅 关闭所有新进程。TERM 信号。它将向其工作进程发送消息,请求它们立即退出。如果有任何进程未退出,请发送 KILL 信号强制它们退出。当新的主进程退出时,旧的主进程将自动启动新的工作进程。.oldbin 后缀。QUIT 信号,只有新进程将保留。keys_zone)刷新到磁盘,以便新的主进程可以恢复它们,从而提高性能。如果由于区域大小更改、二进制版本不兼容或其他原因导致恢复失败,Angie 将记录警告(failed to restore zone at address),并且不会使用区域恢复机制。命令行选项#
-?、-h--build-env-c file-e filestderr 指定标准错误
输出。-g directivesangie -g "pid /var/run/angie.pid; worker_processes
`sysctl -n hw.ncpu`;"。-m、-M-m)或内置和已加载模块
(-M)的列表,然后退出。-p prefixangie 使用指定的 prefix 路径(服务器
文件所在的目录;默认为 /usr/local/angie/)。-q-t 或 -T,则仅显示错误消息;
否则,无效果。-s signalstop、quit、reopen、reload 等。-t-T-t 相同,但在递归包含配置中提到的所有文件后,
还会将汇总配置输出到标准输出。-v-V