ANGIE(8)

πŸ“¦ version 1.12.4, in nixos 26.05, nixpkgs unstable

✨ ANGIE(8) ✨

okay so bestie, buckle up β€” this is the ANGIE(8) page from the System Manager's Manual, and it's honestly kind of a serve. it's the manual for the angie binary itself, the main character of the whole operation. let's get into it πŸ’…


🌸 NAME 🌸

Angie β€” HTTP and reverse proxy server, mail proxy server πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

angie [-?hqTtVvmM] [-c file] [-e file] [-g directives] [-p prefix]
      [-s signal] [--help] [--build-env] [--log-level=level]

πŸ’– DESCRIPTION πŸ’–

Angie is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server. it's literally known for being high performance, stable, stupidly feature-rich, easy to configure, and it barely eats any resources. lowkey the whole package. πŸ”₯

The options are as follows, and yes, we're going through all of them:

  • -?, -h, --help β€” print help. that's it, that's the vibe 🫢
  • -c file β€” use an alternative configuration file.
  • -e file β€” use an alternative error log file. the special value stderr means "just send it to standard error, bestie."
  • -g directives β€” set global configuration directives. peep EXAMPLES below for how this actually looks.
  • -p prefix β€” set the prefix path. the default value is %%PREFIX%%.
  • -q β€” suppress non-error messages while testing the configuration. quiet luxury ✨
  • -s signal β€” send a signal to the master process. the signal argument can be one of: stop, quit, reopen, reload. here's the mapping, no cap:
    • stop β†’ SIGTERM
    • quit β†’ SIGQUIT
    • reopen β†’ SIGUSR1
    • reload β†’ SIGHUP
  • -m β€” show built-in modules and exit.
  • -M β€” show built-in and loaded modules, then exit. the extra-M stands for "more", obviously πŸ’€
  • -T β€” same as -t, but it also dumps the configuration files to standard output. two-for-one.
  • -t β€” don't actually run anything, just test the configuration file. Angie checks the configuration file syntax, then tries to open the files referenced in the configuration file, including binding to the configured listen addresses. it's a whole vibe check for your config πŸ”
  • -V β€” print the Angie version, the compiler version, and the configure script parameters.
  • -v β€” print the Angie version. (yes, lowercase. yes, it's a different thing. iykyk)
  • --build-env β€” show the build environment and exit.
  • --log-level= level β€” set the initial error log level.

🌈 SIGNALS 🌈

The master process of Angie can handle the following signals:

  • SIGINT, SIGTERM β€” shut down quickly. like, quickly quickly.
  • SIGHUP β€” reload configuration, start the new worker process with the new configuration, and gracefully shut down the old worker processes. a full glow-up πŸ¦‹
  • SIGQUIT β€” shut down gracefully. soft launch of an exit.
  • SIGUSR1 β€” reopen log files.
  • SIGUSR2 β€” upgrade the Angie executable on the fly. iconic, honestly.
  • SIGWINCH β€” shut down worker processes gracefully.

so normally there's no need to explicitly control worker processes, but they do support some signals too:

  • SIGTERM β€” shut down quickly.
  • SIGQUIT β€” shut down gracefully.
  • SIGUSR1 β€” reopen log files.

🧚 DEBUGGING LOG 🧚

to enable a debugging log, you gotta reconfigure Angie to build with debugging:

./configure --with-debug ...

and then set the debug level of the error_log:

error_log /path/to/log debug;

you can also enable debugging for one particular IP address, which is kind of a niche flex but ok:

events {
        debug_connection 127.0.0.1;
}

⭐ ENVIRONMENT ⭐

  • ANGIE β€” this environment variable is used internally by Angie and should not be set directly by the user. hands off, bestie πŸ™ˆ

πŸ’œ FILES πŸ’œ

  • %%PID_PATH%% β€” contains the process ID of Angie. the contents of this file are not sensitive, so it can be world-readable.
  • %%CONF_PATH%% β€” the main configuration file.
  • %%ERROR_LOG_PATH%% β€” the error log file.

πŸ“ EXIT STATUS πŸ“

exit status is 0 on success, or 1 if the command fails. simple as that. πŸ’…


πŸ‘‘ EXAMPLES πŸ‘‘

test the configuration file ~/myangie.conf with global directives for the PID and the quantity of worker processes:

angie -t -c ~/myangie.conf \
        -g "pid /var/run/myangie.pid; worker_processes 2;"

look at that. -t for the test, -c for the file, -g for the global directives. we ate. πŸ”₯


πŸ’€ SEE ALSO πŸ’€

for online documentation, technical support, and bug reports, please refer to https://en.angie.software. that's the one link, go off.


🌸 HISTORY 🌸

on 27 of July 2022, a group of former nginx developers registered LLC "Web Server" in order to create and maintain a new fork of nginx called Angie. and that's the origin story, main character energy from day one. ✨


🫢 AUTHORS 🫢

this manual page was originally written by Sergey A. Osokin <osa@FreeBSD.org.ru> πŸ’–


so yeah, that's literally the whole ANGIE(8) page. every flag, every signal, every path β€” all of it. slay. πŸŽ€

and one last cute sign-off: this beauty ships from Debian, dated January 21, 2026. periodt. πŸ’…β­

πŸ“¦ where this page comes from