UWSGI_PHP(1)

okay so bestie, you typed man uwsgi_php and the terminal handed you the UWSGI_PHP(1) page, filed under User Commands. it is six parts long. we are doing part one together, holding hands, nobody gets left behind. ๐Ÿซถ


โœจ NAME โœจ

uwsgi_php โ€” a fast (pure C), self-healing, developer-friendly WSGI server. that's it. that's the whole name section. and honestly? iconic. ๐Ÿ’…


โœจ SYNOPSIS โœจ

uwsgi-core [options...]

โœจ DESCRIPTION โœจ

so here's the tea: the DESCRIPTION on this page is literally just the options list. every single one of them. so we're going through all of them, in order, no skipping, because i love you and i want you to actually know your server. ๐Ÿ’–

๐ŸŽ€ the options, all of them, in order ๐ŸŽ€

  • -s, --socket โ€” bind to the specified UNIX/TCP socket using the default protocol โœจ
  • -s, --uwsgi-socket โ€” bind to the specified UNIX/TCP socket, but speaking the uwsgi protocol
  • --suwsgi-socket โ€” bind to the specified UNIX/TCP socket, uwsgi protocol over SSL ๐Ÿ”’
  • --ssl-socket โ€” bind to the specified UNIX/TCP socket, uwsgi protocol over SSL (yes, twin descriptions, they're twins)
  • --http-socket โ€” bind to the specified UNIX/TCP socket using the HTTP protocol
  • --http-socket-modifier1 โ€” force the modifier1 you give it when using the HTTP protocol
  • --http-socket-modifier2 โ€” force the modifier2 you give it when using the HTTP protocol
  • --http11-socket โ€” bind to the specified UNIX/TCP socket using the HTTP 1.1 (Keep-Alive) protocol
  • --https-socket โ€” bind to the specified UNIX/TCP socket using the HTTPS protocol ๐Ÿ”
  • --https-socket-modifier1 โ€” force the specified modifier1 when using the HTTPS protocol
  • --https-socket-modifier2 โ€” force the specified modifier2 when using the HTTPS protocol
  • --fastcgi-socket โ€” bind to the specified UNIX/TCP socket using the FastCGI protocol
  • --fastcgi-nph-socket โ€” bind to the specified UNIX/TCP socket using the FastCGI protocol (nph mode)
  • --fastcgi-modifier1 โ€” force the specified modifier1 when using the FastCGI protocol
  • --fastcgi-modifier2 โ€” force the specified modifier2 when using the FastCGI protocol
  • --scgi-socket โ€” bind to the specified UNIX/TCP socket using the SCGI protocol
  • --scgi-nph-socket โ€” bind to the specified UNIX/TCP socket using the SCGI protocol (nph mode)
  • --scgi-modifier1 โ€” force the specified modifier1 when using the SCGI protocol
  • --scgi-modifier2 โ€” force the specified modifier2 when using the SCGI protocol
  • --raw-socket โ€” bind to the specified UNIX/TCP socket using the RAW protocol
  • --raw-modifier1 โ€” force the specified modifier1 when using the RAW protocol
  • --raw-modifier2 โ€” force the specified modifier2 when using the RAW protocol
  • --puwsgi-socket โ€” bind to the specified UNIX/TCP socket using the persistent uwsgi protocol (puwsgi)
  • --protocol โ€” force the specified protocol for default sockets
  • --socket-protocol โ€” force the specified protocol for default sockets (twins again, we love consistency)
  • --shared-socket โ€” create a shared socket for advanced jailing or ipc
  • --undeferred-shared-socket โ€” create a shared socket for advanced jailing or ipc (undeferred mode)
  • -p, --processes โ€” spawn the specified number of workers/processes
  • -p, --workers โ€” spawn the specified number of workers/processes (same short flag, same job, same slay)
  • --thunder-lock โ€” serialize accept() usage (if possible) โšก
  • -t, --harakiri โ€” set the harakiri timeout ๐Ÿ”ช
  • --harakiri-verbose โ€” enable verbose mode for harakiri
  • --harakiri-graceful-timeout โ€” the interval between a graceful harakiri attempt and a sigkill
  • --harakiri-graceful-signal โ€” use this signal instead of sigterm for graceful harakiri attempts
  • --harakiri-queue-threshold โ€” only trigger harakiri if the queue is greater than this threshold
  • --harakiri-no-arh โ€” do not enable harakiri during after-request-hook
  • --no-harakiri-arh โ€” do not enable harakiri during after-request-hook
  • --no-harakiri-after-req-hook โ€” do not enable harakiri during after-request-hook (three aliases, one vibe)
  • --backtrace-depth โ€” set the backtrace depth
  • --mule-harakiri โ€” set the harakiri timeout for mule tasks
  • -x, --xmlconfig โ€” load config from an xml file
  • -x, --xml โ€” load config from an xml file
  • --config โ€” load configuration using the pluggable system
  • --fallback-config โ€” re-exec uwsgi with the specified config when the exit code is 1
  • --strict โ€” enable strict mode (placeholder cannot be used) โš ๏ธ
  • --skip-zero โ€” skip the check of file descriptor 0
  • --skip-atexit โ€” skip atexit hooks (ignored by the master)
  • --skip-atexit-teardown โ€” skip atexit teardown (ignored by the master)
  • -S, --set โ€” set a placeholder or an option
  • --set-placeholder โ€” set a placeholder
  • --set-ph โ€” set a placeholder
  • --get โ€” print the specified option value and exit
  • --declare-option โ€” declare a new uWSGI custom option
  • --declare-option2 โ€” declare a new uWSGI custom option (non-immediate)
  • --resolve โ€” place the result of a dns query in the specified placeholder, sytax: placeholder=name (immediate option)
  • --for โ€” (opt logic) for cycle
  • --for-glob โ€” (opt logic) for cycle (expand glob)
  • --for-times โ€” (opt logic) for cycle (expand the specified num to a list starting from 1)
  • --for-readline โ€” (opt logic) for cycle (expand the specified file to a list of lines)
  • --endfor โ€” (opt logic) end for cycle
  • --end-for โ€” (opt logic) end for cycle
  • --if-opt โ€” (opt logic) check for option
  • --if-not-opt โ€” (opt logic) check for option
  • --if-env โ€” (opt logic) check for environment variable
  • --if-not-env โ€” (opt logic) check for environment variable
  • --ifenv โ€” (opt logic) check for environment variable
  • --if-reload โ€” (opt logic) check for reload
  • --if-not-reload โ€” (opt logic) check for reload
  • --if-hostname โ€” (opt logic) check for hostname
  • --if-not-hostname โ€” (opt logic) check for hostname
  • --if-hostname-match โ€” (opt logic) try to match the hostname against a regular expression
  • --if-not-hostname-match โ€” (opt logic) try to match the hostname against a regular expression
  • --if-exists โ€” (opt logic) check for file/directory existence
  • --if-not-exists โ€” (opt logic) check for file/directory existence
  • --ifexists โ€” (opt logic) check for file/directory existence
  • --if-plugin โ€” (opt logic) check for plugin
  • --if-not-plugin โ€” (opt logic) check for plugin
  • --ifplugin โ€” (opt logic) check for plugin
  • --if-file โ€” (opt logic) check for file existence
  • --if-not-file โ€” (opt logic) check for file existence
  • --if-dir โ€” (opt logic) check for directory existence
  • --if-not-dir โ€” (opt logic) check for directory existence
  • --ifdir โ€” (opt logic) check for directory existence
  • --if-directory โ€” (opt logic) check for directory existence
  • --endif โ€” (opt logic) end if
  • --end-if โ€” (opt logic) end if
  • --blacklist โ€” set options blacklist context
  • --end-blacklist โ€” clear options blacklist context
  • --whitelist โ€” set options whitelist context
  • --end-whitelist โ€” clear options whitelist context
  • --ignore-sigpipe โ€” do not report (annoying) SIGPIPE
  • --ignore-write-errors โ€” do not report (annoying) write()/writev() errors
  • --write-errors-tolerance โ€” set the maximum number of allowed write errors (default: no tolerance)
  • --write-errors-exception-only โ€” only raise an exception on write errors, giving control to the app itself
  • --disable-write-exception โ€” disable exception generation on write()/writev()
  • --inherit โ€” use the specified file as config template
  • --include โ€” include the specified file as immediate configuration
  • --inject-before โ€” inject a text file before the config file (advanced templating)
  • --inject-after โ€” inject a text file after the config file (advanced templating)
  • -d, --daemonize โ€” daemonize uWSGI
  • --daemonize2 โ€” daemonize uWSGI after app loading
  • --stop โ€” stop an instance
  • --reload โ€” reload an instance
  • --pause โ€” pause an instance
  • --suspend โ€” suspend an instance
  • --resume โ€” resume an instance
  • --connect-and-read โ€” connect to a socket and wait for data from it
  • --extract โ€” fetch/dump any supported address to stdout
  • -l, --listen โ€” set the socket listen queue size
  • -v, --max-vars โ€” set the amount of internal iovec/vars structures
  • --max-apps โ€” set the maximum number of per-worker applications
  • -b, --buffer-size โ€” set internal buffer size
  • -m, --memory-report โ€” enable memory report
  • --profiler โ€” enable the specified profiler
  • -c, --cgi-mode โ€” force CGI-mode for plugins supporting it
  • -a, --abstract-socket โ€” force UNIX socket in abstract mode (Linux only)
  • -C, --chmod-socket โ€” chmod-socket
  • -C, --chmod โ€” chmod-socket
  • --chown-socket โ€” chown unix sockets
  • --umask โ€” set umask
  • --freebind โ€” put socket in freebind mode
  • --map-socket โ€” map sockets to specific workers
  • -T, --enable-threads โ€” enable threads (stub option this is true by default)
  • --no-threads-wait โ€” do not wait for threads cancellation on quit/reload
  • --auto-procname โ€” automatically set processes name to something meaningful
  • --procname-prefix โ€” add a prefix to the process names
  • --procname-prefix-spaced โ€” add a spaced prefix to the process names
  • --procname-append โ€” append a string to process names
  • --procname โ€” set process names
  • --procname-master โ€” set master process name
  • -i, --single-interpreter โ€” do not use multiple interpreters (where available)
  • --need-app โ€” exit if no app can be loaded
  • -M, --master โ€” enable master process
  • --honour-stdin โ€” do not remap stdin to /dev/null
  • --emperor โ€” run the Emperor ๐Ÿ‘‘
  • --emperor-proxy-socket โ€” force the vassal to became an Emperor proxy
  • --emperor-wrapper โ€” set a binary wrapper for vassals
  • --emperor-wrapper-override โ€” set a binary wrapper for vassals to try before the default one
  • --emperor-wrapper-fallback โ€” set a binary wrapper for vassals to try as a last resort
  • --emperor-nofollow โ€” do not follow symlinks when checking for mtime
  • --emperor-procname โ€” set the Emperor process name
  • --emperor-freq โ€” set the Emperor scan frequency (default 3 seconds)
  • --emperor-required-heartbeat โ€” set the Emperor tolerance about heartbeats
  • --emperor-curse-tolerance โ€” set the Emperor tolerance about cursed vassals

and that's... not even the whole page, bestie. we are SO not done. part 2 is coming, drink some water, stretch your wrists. ๐Ÿซถ๐Ÿ’–

  • --emperor-pidfile โ€” drops the Emperor's pid into the file you name. Emperor bookkeeping, but make it cute โœจ
  • --emperor-tyrant โ€” puts the Emperor into Tyrant mode. Yes bestie, it's literally called that. ๐Ÿ‘‘
  • --emperor-tyrant-nofollow โ€” in Tyrant mode, don't follow symlinks when it's checking for uid/gid. No sneaky link-following, periodt.
  • --emperor-stats โ€” spin up the Emperor stats server ๐Ÿ“Š
  • --emperor-stats-server โ€” also spins up the Emperor stats server. Same energy, different spelling. ๐Ÿ’…
  • --early-emperor โ€” spawn the emperor as soon as possible. No waiting around, she's got places to be.
  • --emperor-broodlord โ€” run the emperor in BroodLord mode. The lore is real, iykyk.
  • --emperor-throttle โ€” set the throttling level, in milliseconds, for vassals that are behaving badly. Default is 1000. Naughty vassals get timed out ๐Ÿซถ
  • --emperor-max-throttle โ€” the max throttling level, in milliseconds, for bad-behaving vassals. Default is 3 minutes. Yes, three whole minutes of timeout. ๐Ÿ˜ญ
  • --emperor-magic-exec โ€” prefixes vassals' config files with exec:// if they have the executable bit set. Magic โœจ literally in the name.
  • --emperor-on-demand-extension โ€” search for a text file named vassal name + extension that contains the on-demand socket name.
  • --emperor-on-demand-ext โ€” same thing, shorter name: search for a text file (vassal name + extension) containing the on-demand socket name.
  • --emperor-on-demand-directory โ€” turns on on-demand mode, binding to the unix socket in the directory you specify, named like the vassal + .socket.
  • --emperor-on-demand-dir โ€” the short version of the above: on-demand mode, unix socket in the specified directory, named vassal + .socket.
  • --emperor-on-demand-exec โ€” use the output of the command you specify as the on-demand socket name. The vassal name gets passed as the only argument.
  • --emperor-extra-extension โ€” lets the Emperor accept the extension you specify (the vassal gets called with --config).
  • --emperor-extra-ext โ€” same deal, abbreviated: allow the specified extension in the Emperor, and the vassal gets called with --config.
  • --emperor-no-blacklist โ€” turns the Emperor blacklisting subsystem all the way off ๐Ÿšซ
  • --emperor-use-clone โ€” use clone() instead of fork(), passing the unshare() flags you specify.
  • --emperor-graceful-shutdown โ€” vassals get a graceful shutdown during ragnarok. Yes, ragnarok. We don't make the rules. ๐Ÿ”ฅ
  • --emperor-cap โ€” set vassals capability.
  • --vassals-cap โ€” set vassals capability. (Same thing, another alias, bestie.)
  • --vassal-cap โ€” set vassals capability. Third one. She's thorough.
  • --imperial-monitor-list โ€” list the enabled imperial monitors ๐Ÿ“‹
  • --imperial-monitors-list โ€” list the enabled imperial monitors (plural version, same list).
  • --vassals-inherit โ€” add config templates to vassals' config (it uses --inherit).
  • --vassals-include โ€” include config templates into vassals' config (it uses --include instead of --inherit).
  • --vassals-inherit-before โ€” add config templates to vassals' config using --inherit, and it parses them before the vassal file.
  • --vassals-include-before โ€” include config templates into vassals' config using --include instead of --inherit, and it parses them before the vassal file.
  • --vassals-start-hook โ€” run the command you specify before each vassal starts ๐Ÿ
  • --vassals-stop-hook โ€” run the specified command after a vassal's death. RIP little vassal ๐Ÿ•ฏ๏ธ
  • --vassal-sos โ€” the vassal asks the emperor for reinforcements when it's overloaded. SOS bestie!! ๐Ÿ†˜
  • --vassal-sos-backlog โ€” ask the emperor for an SOS if the backlog queue has more items than the value you specify.
  • --vassals-set โ€” automatically set the option you specify (via --set) for every single vassal.
  • --vassal-set โ€” same thing, singular spelling: automatically set the specified option via --set for every vassal.
  • --heartbeat โ€” announce healthiness to the emperor. Just letting her know we're thriving ๐Ÿ’–
  • --reload-mercy โ€” the maximum time, in seconds, that we wait for workers and other processes to die during reload/shutdown.
  • --worker-reload-mercy โ€” the maximum time, in seconds, a worker can take to reload/shutdown. Default is 60.
  • --mule-reload-mercy โ€” the maximum time, in seconds, a mule can take to reload/shutdown. Default is 60.
  • --exit-on-reload โ€” force exit even if a reload was requested.
  • --die-on-term โ€” exit instead of doing a brutal reload on SIGTERM.
  • --force-gateway โ€” force the spawn of the first registered gateway without a master.
  • -h|--help โ€” show this help.
  • -h|--usage โ€” show this help. (Yes, -h is listed twice. That's just how she is.)
  • --print-sym โ€” print the content of the binary symbol you specify.
  • --print-symbol โ€” print the content of the specified binary symbol.
  • -r|--reaper โ€” call waitpid(-1,...) after each request to get rid of zombies ๐ŸงŸ No zombie apocalypse on our watch.
  • -R|--max-requests โ€” reload workers after the specified amount of managed requests.
  • --max-requests-delta โ€” add (worker_id * delta) to the max_requests value of each worker.
  • --min-worker-lifetime โ€” the number of seconds a worker has to run before it can be reloaded. Default is 10.
  • --max-worker-lifetime โ€” reload workers after the specified number of seconds. Default is disabled.
  • --max-worker-lifetime-delta โ€” add (worker_id * delta) seconds to the max_worker_lifetime value of each worker.
  • -z|--socket-timeout โ€” set the internal sockets timeout.
  • --no-fd-passing โ€” disable file descriptor passing.
  • --locks โ€” create the specified number of shared locks ๐Ÿ”’
  • --lock-engine โ€” set the lock engine.
  • --ftok โ€” set the ipcsem key via ftok() so you avoid duplicates.
  • --persistent-ipcsem โ€” don't remove ipcsem's on shutdown. They stay. Iconic clingy behaviour.
  • -A|--sharedarea โ€” create a raw shared memory area of the specified number of pages. Note: it supports keyval too ๐Ÿ’…
  • --safe-fd โ€” do not close the file descriptor you specify.
  • --fd-safe โ€” do not close the specified file descriptor. (Same thing, flipped name, we love consistency /j)
  • --cache โ€” create a shared cache containing the given elements.
  • --cache-blocksize โ€” set the cache blocksize.
  • --cache-store โ€” enable persistent cache to disk ๐Ÿ’พ
  • --cache-store-sync โ€” set the sync frequency for the persistent cache.
  • --cache-no-expire โ€” disable the auto sweep of expired items.
  • --cache-expire-freq โ€” set how often the cache sweeper scans. Default is 3 seconds.
  • --cache-report-freed-items โ€” constantly report the cache items freed by the sweeper. > Use this only for debug, bestie, it's chatty.
  • --cache-udp-server โ€” bind the cache UDP server (used only for set/update/delete) to the socket you specify.
  • --cache-udp-node โ€” send cache update/deletion to the cache UDP server you specify.
  • --cache-sync โ€” copy the entire content of another uWSGI cache server on server startup.
  • --cache-use-last-modified โ€” update the last_modified_at timestamp on every cache item modification. Default is disabled.
  • --add-cache-item โ€” add an item in the cache.
  • --load-file-in-cache โ€” load a static file into the cache.
  • --load-file-in-cache-gzip โ€” load a static file into the cache, with gzip compression.
  • --cache2 โ€” create a new-generation shared cache (keyval syntax).
  • --queue โ€” enable the shared queue.
  • --queue-blocksize โ€” set the queue blocksize.
  • --queue-store โ€” enable persistent queue to disk.
  • --queue-store-sync โ€” set the sync frequency for the persistent queue.
  • -Q|--spooler โ€” run a spooler on the directory you specify ๐Ÿ“‚
  • --spooler-external โ€” map spooler requests to a spooler directory managed by an external instance.
  • --spooler-ordered โ€” try to order the execution of spooler tasks.
  • --spooler-chdir โ€” chdir() to the specified directory before each spooler task.
  • --spooler-processes โ€” set the number of processes for spoolers.
  • --spooler-quiet โ€” don't be verbose about spooler tasks ๐Ÿคซ
  • --spooler-max-tasks โ€” the maximum number of tasks to run before recycling a spooler.
  • --spooler-harakiri โ€” set the harakiri timeout for spooler tasks.
  • --spooler-frequency โ€” set the spooler frequency.
  • --spooler-freq โ€” set the spooler frequency. (Short version, same vibe.)
  • --mule โ€” add a mule.
  • --mules โ€” add the specified number of mules.
  • --farm โ€” add a mule farm. Mules with friends ๐Ÿด
  • --mule-msg-size โ€” set the mule message buffer size.
  • --signal โ€” send a uWSGI signal to a server.
  • --signal-bufsize โ€” set the buffer size for the signal queue.
  • --signals-bufsize โ€” set the buffer size for the signal queue. (Plural edition.)
  • --signal-timer โ€” add a timer. Syntax: <signal> <seconds>.
  • --timer โ€” add a timer. Syntax: <signal> <seconds>. โฐ
  • --signal-rbtimer โ€” add a redblack timer. Syntax: <signal> <seconds>.
  • --rbtimer โ€” add a redblack timer. Syntax: <signal> <seconds>.
  • --rpc-max โ€” maximum number of rpc slots. Default is 64.
  • -L|--disable-logging โ€” disable request logging. Silence, but make it fashion.
  • --flock โ€” lock the file you specify before starting, and exit if it's locked.
  • --flock-wait โ€” lock the specified file before starting, and wait if it's locked.
  • --flock2 โ€” lock the specified file after logging/daemon setup, and exit if it's locked.
  • --flock-wait2 โ€” lock the specified file after logging/daemon setup, and wait if it's locked.
  • --pidfile โ€” create a pidfile (before privileges drop).
  • --pidfile2 โ€” create a pidfile (after privileges drop).
  • --safe-pidfile โ€” create a safe pidfile (before privileges drop).
  • --safe-pidfile2 โ€” create a safe pidfile (after privileges drop).
  • --chroot โ€” chroot() to the directory you specify.
  • --pivot-root โ€” pivot_root() to the directories you specify. new_root and put_old must be separated with a space.
  • --pivot_root โ€” pivot_root() to the specified directories. Again: new_root and put_old must be separated by a space.
  • --uid โ€” setuid to the specified user/uid.
  • --gid โ€” setgid to the specified group/gid.
  • --add-gid โ€” add the specified group id to the process credentials.
  • --immediate-uid โ€” setuid to the specified user/uid IMMEDIATELY. No chill, right now ๐Ÿƒโ€โ™€๏ธ
  • --immediate-gid โ€” setgid to the specified group/gid IMMEDIATELY.
  • --no-initgroups โ€” disable the additional groups that get set via initgroups().
  • --cap โ€” set process capability.
  • --unshare โ€” unshare() part of the processes and put them in a new namespace.
  • --unshare2 โ€” unshare() part of the processes and put them in a new namespace, but after the rootfs change.
  • --setns-socket โ€” expose a unix socket that returns namespace fds from /proc/self/ns.
  • --setns-socket-skip โ€” skip the specified entry when sending setns file descriptors.
  • --setns-skip โ€” skip the specified entry when sending setns file descriptors. (Shorter spelling, same skip.)
  • --setns โ€” join a namespace that was created by an external uWSGI instance.
  • --setns-preopen โ€” open /proc/self/ns as soon as possible and cache the fds. Speedy โœจ
  • --jailed โ€” mark the instance as jailed (force the execution of post_jail hooks) ๐Ÿ’…
  • --refork โ€” fork() again after privileges drop. useful for jailing systems ๐Ÿฆ‹
  • --re-fork โ€” fork() again after privileges drop. useful for jailing systems โœจ
  • --refork-as-root โ€” fork() again before privileges drop. useful for jailing systems ๐Ÿ’–
  • --re-fork-as-root โ€” fork() again before privileges drop. useful for jailing systems ๐Ÿซถ
  • --refork-post-jail โ€” fork() again after jailing. useful for jailing systems ๐ŸŒธ
  • --re-fork-post-jail โ€” fork() again after jailing. useful for jailing systems ๐ŸŽ€
  • --hook-asap โ€” run the specified hook as soon as possible โšก
  • --hook-pre-jail โ€” run the specified hook before jailing ๐Ÿ”’
  • --hook-post-jail โ€” run the specified hook after jailing ๐Ÿ”“
  • --hook-in-jail โ€” run the specified hook in jail after initialization ๐Ÿ 
  • --hook-as-root โ€” run the specified hook before privileges drop ๐Ÿ‘‘
  • --hook-as-user โ€” run the specified hook after privileges drop ๐Ÿ™‹
  • --hook-as-user-atexit โ€” run the specified hook before app exit and reload ๐Ÿšช
  • --hook-pre-app โ€” run the specified hook before app loading ๐Ÿ“ฆ
  • --hook-post-app โ€” run the specified hook after app loading ๐Ÿ“ฌ
  • --hook-post-fork โ€” run the specified hook after each fork ๐Ÿด
  • --hook-accepting โ€” run the specified hook after each worker enter the accepting phase ๐ŸŽง
  • --hook-accepting1 โ€” run the specified hook after the first worker enters the accepting phase 1๏ธโƒฃ
  • --hook-accepting-once โ€” run the specified hook after each worker enter the accepting phase (once per-instance) ๐Ÿ”‚
  • --hook-accepting1-once โ€” run the specified hook after the first worker enters the accepting phase (once per instance) โ˜๏ธ
  • --hook-master-start โ€” run the specified hook when the Master starts ๐Ÿ‘‘
  • --hook-touch โ€” run the specified hook when the specified file is touched (syntax: <file> <action>) ๐Ÿ‘†
  • --hook-emperor-start โ€” run the specified hook when the Emperor starts ๐Ÿ
  • --hook-emperor-stop โ€” run the specified hook when the Emperor send a stop message ๐Ÿ›‘
  • --hook-emperor-reload โ€” run the specified hook when the Emperor send a reload message ๐Ÿ”„
  • --hook-emperor-lost โ€” run the specified hook when the Emperor connection is lost ๐Ÿ’”
  • --hook-as-vassal โ€” run the specified hook before exec()ing the vassal ๐Ÿงš
  • --hook-as-emperor โ€” run the specified hook in the emperor after the vassal has been started ๐Ÿ‘‘
  • --hook-as-mule โ€” run the specified hook in each mule ๐Ÿด
  • --hook-as-gateway โ€” run the specified hook in each gateway ๐ŸŒ
  • --after-request-hook โ€” run the specified function/symbol after each request ๐Ÿช
  • --after-request-call โ€” run the specified function/symbol after each request ๐Ÿ“ž
  • --exec-asap โ€” run the specified command as soon as possible โšก
  • --exec-pre-jail โ€” run the specified command before jailing ๐Ÿ”’
  • --exec-post-jail โ€” run the specified command after jailing ๐Ÿ”“
  • --exec-in-jail โ€” run the specified command in jail after initialization ๐Ÿ 
  • --exec-as-root โ€” run the specified command before privileges drop ๐Ÿ‘‘
  • --exec-as-user โ€” run the specified command after privileges drop ๐Ÿ™‹
  • --exec-as-user-atexit โ€” run the specified command before app exit and reload ๐Ÿšช
  • --exec-pre-app โ€” run the specified command before app loading ๐Ÿ“ฆ
  • --exec-post-app โ€” run the specified command after app loading ๐Ÿ“ฌ
  • --exec-as-vassal โ€” run the specified command before exec()ing the vassal ๐Ÿงš
  • --exec-as-emperor โ€” run the specified command in the emperor after the vassal has been started ๐Ÿ‘‘
  • --mount-asap โ€” mount filesystem as soon as possible โšก
  • --mount-pre-jail โ€” mount filesystem before jailing ๐Ÿ”’
  • --mount-post-jail โ€” mount filesystem after jailing ๐Ÿ”“
  • --mount-in-jail โ€” mount filesystem in jail after initialization ๐Ÿ 
  • --mount-as-root โ€” mount filesystem before privileges drop ๐Ÿ‘‘
  • --mount-as-vassal โ€” mount filesystem before exec()ing the vassal ๐Ÿงš
  • --mount-as-emperor โ€” mount filesystem in the emperor after the vassal has been started ๐Ÿ‘‘
  • --umount-asap โ€” unmount filesystem as soon as possible โšก
  • --umount-pre-jail โ€” unmount filesystem before jailing ๐Ÿ”’
  • --umount-post-jail โ€” unmount filesystem after jailing ๐Ÿ”“
  • --umount-in-jail โ€” unmount filesystem in jail after initialization ๐Ÿ 
  • --umount-as-root โ€” unmount filesystem before privileges drop ๐Ÿ‘‘
  • --umount-as-vassal โ€” unmount filesystem before exec()ing the vassal ๐Ÿงš
  • --umount-as-emperor โ€” unmount filesystem in the emperor after the vassal has been started ๐Ÿ‘‘
  • --wait-for-interface โ€” wait for the specified network interface to come up before running root hooks ๐Ÿ“ก
  • --wait-for-interface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-interface โ€” wait for the specified network interface to come up before running root hooks ๐Ÿ“ถ
  • --wait-interface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-for-iface โ€” wait for the specified network interface to come up before running root hooks ๐ŸŒ
  • --wait-for-iface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-iface โ€” wait for the specified network interface to come up before running root hooks ๐Ÿ“ถ
  • --wait-iface-timeout โ€” set the timeout for wait-for-interface โณ
  • --wait-for-fs โ€” wait for the specified filesystem item to appear before running root hooks ๐Ÿ“
  • --wait-for-file โ€” wait for the specified file to appear before running root hooks ๐Ÿ“„
  • --wait-for-dir โ€” wait for the specified directory to appear before running root hooks ๐Ÿ“‚
  • --wait-for-mountpoint โ€” wait for the specified mountpoint to appear before running root hooks ๐Ÿ—‚๏ธ
  • --wait-for-fs-timeout โ€” set the timeout for wait-for-fs/file/dir โณ
  • --wait-for-socket โ€” wait for the specified socket to be ready before loading apps ๐Ÿ”Œ
  • --wait-for-socket-timeout โ€” set the timeout for wait-for-socket โณ
  • --call-asap โ€” call the specified function as soon as possible โšก
  • --call-pre-jail โ€” call the specified function before jailing ๐Ÿ”’
  • --call-post-jail โ€” call the specified function after jailing ๐Ÿ”“
  • --call-in-jail โ€” call the specified function in jail after initialization ๐Ÿ 
  • --call-as-root โ€” call the specified function before privileges drop ๐Ÿ‘‘
  • --call-as-user โ€” call the specified function after privileges drop ๐Ÿ™‹
  • --call-as-user-atexit โ€” call the specified function before app exit and reload ๐Ÿšช
  • --call-pre-app โ€” call the specified function before app loading ๐Ÿ“ฆ
  • --call-post-app โ€” call the specified function after app loading ๐Ÿ“ฌ
  • --call-as-vassal โ€” call the specified function() before exec()ing the vassal ๐Ÿงš
  • --call-as-vassal1 โ€” call the specified function(char *) before exec()ing the vassal ๐Ÿงš
  • --call-as-vassal3 โ€” call the specified function(char *, uid_t, gid_t) before exec()ing the vassal ๐Ÿงš
  • --call-as-emperor โ€” call the specified function() in the emperor after the vassal has been started ๐Ÿ‘‘
  • --call-as-emperor1 โ€” call the specified function(char *) in the emperor after the vassal has been started ๐Ÿ‘‘
  • --call-as-emperor2 โ€” call the specified function(char *, pid_t) in the emperor after the vassal has been started ๐Ÿ‘‘
  • --call-as-emperor4 โ€” call the specified function(char *, pid_t, uid_t, gid_t) in the emperor after the vassal has been started ๐Ÿ‘‘
  • --ini โ€” load config from ini file ๐Ÿ“„
  • -y, --yaml โ€” load config from yaml file ๐Ÿ“„
  • -y, --yml โ€” load config from yaml file ๐Ÿ“„
  • -j, --json โ€” load config from json file ๐Ÿ“„
  • -j, --js โ€” load config from json file ๐Ÿ“„
  • --weight โ€” weight of the instance (used by clustering/lb/subscriptions) โš–๏ธ
  • --auto-weight โ€” set weight of the instance (used by clustering/lb/subscriptions) automatically ๐Ÿค–
  • --no-server โ€” force no-server mode ๐Ÿšซ
  • --command-mode โ€” force command mode ๐Ÿ’ป
  • --no-defer-accept โ€” <orange>disable deferred-accept on sockets</orange> ๐Ÿšซ
  • --tcp-nodelay โ€” enable TCP NODELAY on each request ๐Ÿš€
  • --so-keepalive โ€” enable TCP KEEPALIVEs ๐Ÿ’“
  • --so-send-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-send-timeout โ€” set SO_SNDTIMEO โณ
  • --so-write-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-write-timeout โ€” set SO_SNDTIMEO โณ
  • --socket-sndbuf โ€” set SO_SNDBUF ๐Ÿ“ค
  • --socket-rcvbuf โ€” set SO_RCVBUF ๐Ÿ“ฅ
  • --shutdown-sockets โ€” force calling shutdown() in addition to close() when sockets are destroyed ๐Ÿ”Œ
  • --limit-as โ€” limit processes address space/vsz ๐Ÿ“
  • --limit-nproc โ€” limit the number of spawnable processes ๐Ÿ”ข
  • --reload-on-as โ€” reload if address space is higher than specified megabytes ๐Ÿ”
  • --reload-on-rss โ€” reload if rss memory is higher than specified megabytes ๐Ÿ”
  • --evil-reload-on-as โ€” force the master to reload a worker if its address space is higher than specified megabytes ๐Ÿ˜ˆ
  • --evil-reload-on-rss โ€” force the master to reload a worker if its rss memory is higher than specified megabytes ๐Ÿ˜ˆ
  • --mem-collector-freq โ€” set the memory collector frequency when evil reloads are in place ๐Ÿงน
  • --reload-on-fd โ€” reload if the specified file descriptor is ready ๐Ÿ”
  • --brutal-reload-on-fd โ€” brutal reload if the specified file descriptor is ready ๐Ÿ’ฅ
  • --ksm โ€” enable Linux KSM ๐Ÿง
  • --pcre-jit โ€” enable pcre jit (if available) โšก
  • --never-swap โ€” lock all memory pages avoiding swapping ๐Ÿ”’
  • --touch-reload โ€” reload uWSGI if the specified file is modified/touched ๐Ÿ‘†
  • --touch-workers-reload โ€” trigger reload of (only) workers if the specified file is modified/touched ๐Ÿ‘†
  • --touch-mules-reload โ€” reload mules if the specified file is modified/touched ๐Ÿ‘†
  • --touch-spoolers-reload โ€” reload spoolers if the specified file is modified/touched ๐Ÿ‘†
  • --touch-chain-reload โ€” trigger chain reload if the specified file is modified/touched ๐Ÿ‘†
  • --touch-logrotate โ€” trigger logrotation if the specified file is modified/touched ๐Ÿ‘†
  • --touch-logreopen โ€” trigger log reopen if the specified file is modified/touched ๐Ÿ‘†
  • --touch-exec โ€” run command when the specified file is modified/touched (syntax: file command) ๐Ÿ‘†
  • --touch-signal โ€” ping a signal the moment the file you named gets modified/touched. syntax: file signal โœจ
  • --fs-reload โ€” when the filesystem object you point at changes, do a graceful reload ๐Ÿฆ‹
  • --fs-brutal-reload โ€” same vibe, but make it brutal ๐Ÿ’€ reload when that filesystem object changes
  • --fs-signal โ€” raise a uwsgi signal when the specified filesystem object gets modified. syntax: file signal
  • --check-mountpoint โ€” if a filesystem stops being reachable, the instance just destroys itself. Lowkey iconic for reliable Fuse management ๐Ÿงš
  • --mountpoint-check โ€” literally the same thing bestie: filesystem unreachable โ†’ instance destroyed. (reliable Fuse management energy)
  • --check-mount โ€” yep, same again. filesystem gone = instance gone. Fuse management stay winning โœจ
  • --mount-check โ€” the fourth twin ๐Ÿ‘ฏ destroy the instance if a filesystem is no more reachable (useful for reliable Fuse management)
  • --propagate-touch โ€” the most over-engineering option ever for systems with flaky signal management ๐Ÿ˜ญ no cap, that's what it says
  • --limit-post โ€” cap the request body, periodt.
  • --no-orphans โ€” workers get killed automatically if the master dies.
careful bestie โ€” this one can be dangerous for availability ๐Ÿ’€
  • --prio โ€” set the priority of processes/threads ๐ŸŽ€
  • --cpu-affinity โ€” set the cpu affinity (pin those babies down)
  • --post-buffering โ€” set the size in bytes after which the body buffers to disk instead of memory
  • --post-buffering-bufsize โ€” set the buffer size used for read() when you're in post buffering mode ๐Ÿ“ฆ
  • --body-read-warning โ€” set how much memory allocation (in megabytes) is allowed for a request body before it starts printing a warning at you ๐Ÿ™ˆ
  • --upload-progress โ€” turn on creation of .json files in the directory you specify, while a file upload is happening โญ
  • --no-default-app โ€” do not fallback to the default app. no safety net, we're free ๐Ÿ’…
  • --manage-script-name โ€” automatically rewrites SCRIPT_NAME and PATH_INFO for you โœจ
  • --ignore-script-name โ€” ignore SCRIPT_NAME entirely ๐Ÿ™ˆ
  • --catch-exceptions โ€” report the exception as http output.
discouraged!! use only for testing, fr fr ๐Ÿงช
  • --reload-on-exception โ€” a worker raises an exception โ†’ that worker gets reloaded ๐Ÿ”„
  • --reload-on-exception-type โ€” reload a worker when a specific exception type gets raised ๐ŸŽฏ
  • --reload-on-exception-value โ€” reload a worker when a specific exception value gets raised
  • --reload-on-exception-repr โ€” reload a worker when a specific exception type+value (language-specific, iykyk) gets raised
  • --exception-handler โ€” add an exception handler ๐Ÿซถ
  • --enable-metrics โ€” turn on the metrics subsystem ๐Ÿ“Š
  • --metric โ€” add a custom metric, make it yours ๐Ÿ’–
  • --metric-threshold โ€” add a metric threshold/alarm ๐Ÿšจ
  • --metric-alarm โ€” add a metric threshold/alarm (same energy, different name)
  • --alarm-metric โ€” add a metric threshold/alarm ๐Ÿšจ (third twin, we love a trio)
  • --metrics-dir โ€” export metrics as text files into the directory you name ๐Ÿ“
  • --metrics-dir-restore โ€” restore the last value taken from the metrics dir ๐Ÿงš
  • --metric-dir โ€” export metrics as text files to the specified directory (yes, singular spelling, still the same deal)
  • --metric-dir-restore โ€” restore last value taken from the metrics dir โœจ
  • --metrics-no-cores โ€” stop generating cores-related metrics ๐Ÿšซ
  • --udp โ€” run the udp server on the address you give it ๐ŸŒˆ
  • --stats โ€” enable the stats server on the specified address ๐Ÿ“ˆ
  • --stats-server โ€” enable the stats server on the specified address (identical twin moment)
  • --stats-http โ€” prefix the stats server json output with http headers ๐ŸŒ
  • --stats-minified โ€” minify that statistics json output โœ‚๏ธ
  • --stats-min โ€” minify statistics json output (same thing, shorter name, main character energy)
  • --stats-push โ€” push the stats json to whatever destination you specify ๐Ÿš€
  • --stats-pusher-default-freq โ€” set the default frequency of stats pushers โฐ
  • --stats-pushers-default-freq โ€” set the default frequency of stats pushers (plural, same vibe)
  • --stats-no-cores โ€” disable generation of cores-related stats
  • --stats-no-metrics โ€” do not include metrics in the stats output ๐Ÿ™…
  • --multicast โ€” subscribe to the multicast group you name ๐Ÿ“ก
  • --multicast-ttl โ€” set the multicast ttl
  • --multicast-loop โ€” set multicast loop (default 1)
  • --master-fifo โ€” enable the master fifo ๐ŸŽ€
  • --notify-socket โ€” enable the notification socket ๐Ÿ””
  • --subscription-notify-socket โ€” set the notification socket for subscriptions
  • --legion โ€” become a member of a legion ๐Ÿ‘‘
  • --legion-mcast โ€” become a member of a legion (shortcut for multicast) โšก
  • --legion-node โ€” add a node to a legion
  • --legion-freq โ€” set the frequency of legion packets ๐Ÿ“จ
  • --legion-tolerance โ€” set the tolerance of the legion subsystem
  • --legion-death-on-lord-error โ€” if one of the lord hooks fails, declare itself as a dead node for the number of seconds you specify ๐Ÿ’€
  • --legion-skew-tolerance โ€” set the clock skew tolerance of the legion subsystem (default 60 seconds) โฑ๏ธ
  • --legion-lord โ€” action to call on Lord election ๐Ÿ‘‘
  • --legion-unlord โ€” action to call on Lord dismiss ๐Ÿ‘‹
  • --legion-setup โ€” action to call on legion setup ๐Ÿ› ๏ธ
  • --legion-death โ€” action to call on legion death (shutdown of the instance) ๐Ÿ’€
  • --legion-join โ€” action to call on legion join (first time quorum is reached) ๐ŸŽ‰
  • --legion-node-joined โ€” action to call on a new node joining the legion ๐Ÿซถ
  • --legion-node-left โ€” action to call when a node leaves the legion ๐Ÿšช
  • --legion-quorum โ€” set the quorum of a legion ๐Ÿ—ณ๏ธ
  • --legion-scroll โ€” set the scroll of a legion ๐Ÿ“œ
  • --legion-scroll-max-size โ€” set the max size of the legion scroll buffer
  • --legion-scroll-list-max-size โ€” set the max size of the legion scroll list buffer
  • --subscriptions-sign-check โ€” set the digest algorithm and certificate directory for the secured subscription system ๐Ÿ”
  • --subscriptions-sign-check-tolerance โ€” set the maximum tolerance (in seconds) of clock skew for the secured subscription system โณ
  • --subscriptions-sign-skip-uid โ€” skip the signature check for the uid you specify when using unix sockets credentials ๐Ÿ™ˆ
  • --subscriptions-credentials-check โ€” add a directory to search for subscriptions key credentials ๐Ÿ”‘
  • --subscriptions-use-credentials โ€” enable management of SCM_CREDENTIALS in subscriptions UNIX sockets ๐ŸŽ€
  • --subscription-algo โ€” set the load balancing algorithm for the subscription system โš–๏ธ
  • --subscription-dotsplit โ€” try to fallback to the next part (dot based) in the subscription key ๐Ÿซง
  • --subscribe-to โ€” subscribe to the subscription server you specify ๐Ÿ“ฌ
  • --st โ€” subscribe to the specified subscription server (the short one, so cute)
  • --subscribe โ€” subscribe to the specified subscription server
  • --subscribe2 โ€” subscribe to the specified subscription server using advanced keyval syntax โœจ
  • --subscribe-freq โ€” send the subscription announce at the interval you set โฐ
  • --subscription-tolerance โ€” set tolerance for subscription servers
  • --unsubscribe-on-graceful-reload โ€” force the unsubscribe request even during a graceful reload ๐Ÿ’…
  • --start-unsubscribed โ€” configure subscriptions but do NOT send them (handy with master fifo) ๐Ÿคซ
  • --subscribe-with-modifier1 โ€” force the specified modifier1 when subscribing
  • --snmp โ€” enable the embedded snmp server ๐ŸŒฒ
  • --snmp-community โ€” set the snmp community string
  • --ssl-verbose โ€” be verbose about SSL errors ๐Ÿ—ฃ๏ธ
  • --ssl-verify-depth โ€” set the maximum certificate verification depth ๐Ÿ”
  • --sni โ€” add an SNI-governed SSL context ๐ŸŽ€
  • --sni-dir โ€” check for cert/key/client_ca file in the directory you specify, and create a sni/ssl context on demand โœจ
  • --sni-dir-ciphers โ€” set ssl ciphers for the sni-dir option ๐Ÿ”
  • --ssl-enable3 โ€” enable SSLv3
insecure!! we said what we said ๐Ÿ’€
  • --ssl-enable-sslv3 โ€” enable SSLv3
insecure again, bestie, be so serious ๐Ÿ™ˆ
  • --ssl-enable-tlsv1 โ€” enable TLSv1
insecure ๐Ÿšจ
  • --ssl-option โ€” set a raw ssl option (numeric value, no quotes about it)
  • --sni-regexp โ€” add an SNI-governed SSL context (the key is a regexp) ๐Ÿง 
  • --ssl-tmp-dir โ€” store ssl-related temp files in the directory you name ๐Ÿ—‚๏ธ
  • --check-interval โ€” set the interval (in seconds) of master checks โฑ๏ธ
  • --forkbomb-delay โ€” when a forkbomb is detected, sleep for the number of seconds you specify ๐Ÿ˜ด
  • --binary-path โ€” force the binary path ๐Ÿ›ฃ๏ธ
  • --privileged-binary-patch โ€” patch the uwsgi binary with a new command (before privileges drop) ๐Ÿฉน
  • --unprivileged-binary-patch โ€” patch the uwsgi binary with a new command (after privileges drop)
  • --privileged-binary-patch-arg โ€” patch the uwsgi binary with a new command and arguments (before privileges drop) ๐Ÿฉนโœจ
  • --unprivileged-binary-patch-arg โ€” patch the uwsgi binary with a new command and arguments (after privileges drop)
  • --async โ€” enable async mode with the number of cores you specify โšก
  • --max-fd โ€” set the maximum number of file descriptors (requires root privileges) ๐Ÿ‘‘
  • --logto โ€” set logfile/udp address ๐Ÿ“
  • --logto2 โ€” log to the specified file or udp address after privileges drop
  • --log-format โ€” set an advanced format for request logging ๐ŸŽจ
  • --logformat โ€” set advanced format for request logging (same, shorter, iconic)
  • --logformat-strftime โ€” apply strftime to the logformat output ๐Ÿ•ฐ๏ธ
  • --log-format-strftime โ€” apply strftime to logformat output
  • --logfile-chown โ€” chown logfiles ๐Ÿ‘‘
  • --logfile-chmod โ€” chmod logfiles ๐Ÿ”ง
  • --log-syslog โ€” log to syslog ๐Ÿ“ฎ
  • --log-socket โ€” send logs to the socket you specify ๐Ÿ”Œ
  • --req-logger โ€” set/append a request logger ๐Ÿ“‹
  • --logger-req โ€” set/append a request logger (same thing, different order, we love her)
  • --logger โ€” set/append a logger ๐Ÿชต
  • --logger-list โ€” list the enabled loggers ๐Ÿ“œ
  • --loggers-list โ€” list enabled loggers (plural, still slaying)
  • --threaded-logger โ€” offload the log writing to a thread ๐Ÿงต
  • --log-encoder โ€” add an item in the log encoder chain ๐Ÿ”—
  • --log-req-encoder โ€” add an item in the log req encoder chain
  • --log-drain โ€” drain (aka do not show) log lines matching the regexp you give ๐Ÿ•ณ๏ธ
  • --log-filter โ€” show only the log lines matching the specified regexp ๐Ÿ”
  • --log-route โ€” log to the named logger you specify if the regexp applied on the logline matches ๐ŸŽฏ
  • --log-req-route โ€” log requests to the specified named logger if the regexp applied on the logline matches
  • --use-abort โ€” call abort() on segfault/fpe, could be useful for generating a core dump ๐Ÿ’ฅ
  • --alarm โ€” create a new alarm, syntax: <alarm> <plugin:args> ๐Ÿšจ

  • --alarm-cheap โ€” bestie, this makes curl-based alarms use the main alarm thread instead of spawning a whole dedicated thread per alarm. less thread drama, more chill ๐Ÿ’…
  • --alarm-freq โ€” tunes the anti-loop alarm system. the default is 3 seconds, so likeโ€ฆ don't go feral with it ๐Ÿซถ
  • --alarm-fd โ€” raise the alarm you name when an fd is read for read. by default it reads 1 byte, so if you're on eventfd, set it to 8. iykyk โœจ
  • --alarm-segfault โ€” raise the specified alarm whenever the segmentation fault handler runs. yes, the ๐Ÿ’€ handler. at least you'll get notified.
  • --segfault-alarm โ€” literally the same thing as --alarm-segfault: raise the specified alarm when the segmentation fault handler is executed. two names, one vibe.
  • --alarm-backlog โ€” raise the specified alarm when the socket backlog queue is full. the queue said "no more" and the alarm said "heard" ๐Ÿ””
  • --backlog-alarm โ€” same energy, same option: raise the specified alarm when the socket backlog queue is full.
  • --lq-alarm โ€” yep, another alias: raise the specified alarm when the socket backlog queue is full.
  • --alarm-lq โ€” and another one, bestie: raise the specified alarm when the socket backlog queue is full.
  • --alarm-listen-queue โ€” the backlog queue is full โ†’ raise the specified alarm. (this family is huge, it's giving family reunion ๐ŸŒˆ)
  • --listen-queue-alarm โ€” once again for the people in the back: raise the specified alarm when the socket backlog queue is full.
  • --log-alarm โ€” raise the specified alarm when a log line matches the specified regexp. syntax is <alarm>[,alarm...] <regexp> โ€” note the comma-separated alarm list, slay ๐Ÿ‘‘
  • --alarm-log โ€” the alias twin ๐Ÿ’– raise the specified alarm when a log line matches the specified regexp. syntax: <alarm>[,alarm...] <regexp>
  • --not-log-alarm โ€” the opposite girly: skip the specified alarm when a log line matches the specified regexp. syntax: <alarm>[,alarm...] <regexp>
  • --not-alarm-log โ€” same as above, different spelling โœจ skip the specified alarm when a log line matches the specified regexp, syntax <alarm>[,alarm...] <regexp>
  • --alarm-list โ€” just lists all the enabled alarms. a little roster reveal ๐ŸŽ€
  • --alarms-list โ€” the plural-flavoured twin: list enabled alarms.
  • --alarm-msg-size โ€” sets the max size of an alarm message. default is 8192. keep your alarm messages from becoming whole novels ๐Ÿ“š
  • --log-master โ€” delegate the logging to the master process. let the master handle it, periodt.
  • --log-master-bufsize โ€” sets the buffer size for the master logger. bigger log messages will be truncated, soโ€ฆ choose wisely bestie ๐Ÿ˜ญ
  • --log-master-stream โ€” creates the master logpipe as SOCK_STREAM. sockets but streamy ๐Ÿ’…
  • --log-master-req-stream โ€” creates the master requests logpipe as SOCK_STREAM. same but for the requests one โœจ
  • --log-reopen โ€” reopen the log after a reload. fresh log, fresh me ๐ŸŒธ
  • --log-truncate โ€” truncate the log on startup. blank slate energy, no cap.
  • --log-maxsize โ€” set the maximum logfile size. that's your cap, fr fr.
  • --log-backupname โ€” set the logfile name used after rotation. rotated logs deserve a name too ๐Ÿซถ
  • --logdate โ€” prefix logs with a date or a strftime string. timestamps, iconic.
  • --log-date โ€” the alias: prefix logs with a date or a strftime string.
  • --log-prefix โ€” prefix logs with a string of your choosing. custom flair for every line โœจ
  • --log-zero โ€” log responses that have no body. empty but documented ๐Ÿ’€
  • --log-slow โ€” log requests slower than the specified number of milliseconds. slow and steady gets logged ๐Ÿข
  • --log-4xx โ€” log requests with a 4xx response. client said something goofy, we're noting it ๐Ÿ™ˆ
  • --log-5xx โ€” log requests with a 5xx response. server had a moment, we're noting that too ๐Ÿ˜ญ
  • --log-big โ€” log requests bigger than the specified size. big requests, big receipts ๐Ÿ”ฅ
  • --log-sendfile โ€” log sendfile requests. yes, all of them.
  • --log-ioerror โ€” log requests with io errors. the messy ones get logged too ๐Ÿ’…
  • --log-micros โ€” report response time in microseconds instead of milliseconds. precision era โญ
  • --log-x-forwarded-for โ€” use the ip from the X-Forwarded-For header instead of REMOTE_ADDR. proxy girlies, this one's for you ๐Ÿ’œ
  • --master-as-root โ€” leave the master process running as root. big power, big responsibility ๐Ÿ‘‘
  • --drop-after-init โ€” run the privileges drop after plugin initialization. note: it's superseded by drop-after-apps. so like, know that.
  • --drop-after-apps โ€” run the privileges drop after apps loading. this one is superseded by master-as-root. chain of command, bestie ๐Ÿซก
  • --force-cwd โ€” force the initial working directory to the specified value. your cwd, your rules โœจ
  • --binsh โ€” override /bin/sh. it's used by exec hooks, and it always fallback to /bin/sh โ€” so no matter what you do, that's the safety net ๐Ÿซถ
  • --chdir โ€” chdir to the specified directory before apps loading.
  • --chdir2 โ€” chdir to the specified directory after apps loading. same thing, different timing โฐ
  • --lazy โ€” set lazy mode (load apps in workers instead of master). delegation, but make it processes ๐Ÿ’…
  • --lazy-apps โ€” load apps in each worker instead of the master. every worker gets its own copy, main character energy ๐Ÿ‘‘
  • --cheap โ€” set cheap mode (spawn workers only after the first request). why work before anyone asks? ๐Ÿ˜ด
  • --cheaper โ€” set cheaper mode (adaptive process spawning). workers appear when needed, it's giving โœจadaptiveโœจ
  • --cheaper-initial โ€” set the initial number of processes to spawn in cheaper mode. your starting lineup ๐ŸŽ€
  • --cheaper-algo โ€” choose the algorithm used for adaptive process spawning. pick your fighter ๐Ÿ”ฅ
  • --cheaper-step โ€” number of additional processes to spawn at each overload. overloaded? here's more hands ๐Ÿค
  • --cheaper-overload โ€” increase workers after the specified overload. the threshold where we start hiring ๐Ÿ“ˆ
  • --cheaper-algo-list โ€” list enabled cheapers algorithms. little directory of options ๐Ÿฆ‹
  • --cheaper-algos-list โ€” same thing, plural-coded: list enabled cheapers algorithms.
  • --cheaper-list โ€” also lists enabled cheapers algorithms. three names, one job ๐Ÿ’–
  • --cheaper-rss-limit-soft โ€” don't spawn new workers if the total resident memory usage of all workers is higher than this limit. a gentle nudge, not a hard stop ๐ŸŒธ
  • --cheaper-rss-limit-hard โ€” if total workers resident memory usage is higher, try to stop workers. this one means business ๐Ÿ˜ค
  • --idle โ€” set idle mode (put uWSGI in cheap mode after inactivity). nap time for your processes ๐Ÿ˜ด
  • --die-on-idle โ€” shutdown uWSGI when idle. not a nap, a full goodbye ๐Ÿ’€
  • --mount โ€” load application under mountpoint. plop that app right where you want it ๐Ÿซถ
  • --worker-mount โ€” load application under mountpoint in the specified worker or after workers spawn. same, but worker-scoped โœจ
  • --threads โ€” run each worker in prethreaded mode with the specified number of threads. thread army, assemble ๐Ÿงต
  • --thread-stacksize โ€” set threads stacksize.
  • --threads-stacksize โ€” set threads stacksize. (alias behavior, same deal ๐Ÿ’…)
  • --thread-stack-size โ€” set threads stacksize. the hyphenated remix โœจ
  • --threads-stack-size โ€” set threads stacksize. four names for one setting, that's so uWSGI of it ๐ŸŒˆ
  • --vhost โ€” enable virtualhosting mode (based on the SERVER_NAME variable). many hosts, one process ๐Ÿ‘‘
  • --vhost-host โ€” enable virtualhosting mode (based on the HTTP_HOST variable). same vibe, different variable ๐Ÿ’œ
  • --route โ€” add a route. welcome to routing era ๐Ÿ›ฃ๏ธ
  • --route-host โ€” add a route based on the Host header.
  • --route-uri โ€” add a route based on REQUEST_URI.
  • --route-qs โ€” add a route based on QUERY_STRING.
  • --route-remote-addr โ€” add a route based on REMOTE_ADDR.
  • --route-user-agent โ€” add a route based on HTTP_USER_AGENT.
  • --route-remote-user โ€” add a route based on REMOTE_USER.
  • --route-referer โ€” add a route based on HTTP_REFERER.
  • --route-label โ€” add a routing label (for use with goto). yes bestie, there's a goto ๐Ÿ‘€
  • --route-if โ€” add a route based on condition.
  • --route-if-not โ€” add a route based on condition (negate version). the "if not" twin ๐Ÿ’…
  • --route-run โ€” always run the specified route action. no conditions, just vibes โœจ
  • --final-route โ€” add a final route. the last word ๐ŸŽค
  • --final-route-status โ€” add a final route for the specified status.
  • --final-route-host โ€” add a final route based on the Host header.
  • --final-route-uri โ€” add a final route based on REQUEST_URI.
  • --final-route-qs โ€” add a final route based on QUERY_STRING.
  • --final-route-remote-addr โ€” add a final route based on REMOTE_ADDR.
  • --final-route-user-agent โ€” add a final route based on HTTP_USER_AGENT.
  • --final-route-remote-user โ€” add a final route based on REMOTE_USER.
  • --final-route-referer โ€” add a final route based on HTTP_REFERER.
  • --final-route-label โ€” add a final routing label (for use with goto).
  • --final-route-if โ€” add a final route based on condition.
  • --final-route-if-not โ€” add a final route based on condition (negate version).
  • --final-route-run โ€” always run the specified final route action.
  • --error-route โ€” add an error route. for when things go sideways ๐Ÿ˜ญ
  • --error-route-status โ€” add an error route for the specified status.
  • --error-route-host โ€” add an error route based on the Host header.
  • --error-route-uri โ€” add an error route based on REQUEST_URI.
  • --error-route-qs โ€” add an error route based on QUERY_STRING.
  • --error-route-remote-addr โ€” add an error route based on REMOTE_ADDR.
  • --error-route-user-agent โ€” add an error route based on HTTP_USER_AGENT.
  • --error-route-remote-user โ€” add an error route based on REMOTE_USER.
  • --error-route-referer โ€” add an error route based on HTTP_REFERER.
  • --error-route-label โ€” add an error routing label (for use with goto).
  • --error-route-if โ€” add an error route based on condition.
  • --error-route-if-not โ€” add an error route based on condition (negate version).
  • --error-route-run โ€” always run the specified error route action.
  • --response-route โ€” add a response route. routing but for the reply ๐Ÿ’Œ
  • --response-route-status โ€” add a response route for the specified status.
  • --response-route-host โ€” add a response route based on the Host header.
  • --response-route-uri โ€” add a response route based on REQUEST_URI.
  • --response-route-qs โ€” add a response route based on QUERY_STRING.
  • --response-route-remote-addr โ€” add a response route based on REMOTE_ADDR.
  • --response-route-user-agent โ€” add a response route based on HTTP_USER_AGENT.
  • --response-route-remote-user โ€” add a response route based on REMOTE_USER.
  • --response-route-referer โ€” add a response route based on HTTP_REFERER.
  • --response-route-label โ€” add a response routing label (for use with goto).
  • --response-route-if โ€” add a response route based on condition.
  • --response-route-if-not โ€” add a response route based on condition (negate version).
  • --response-route-run โ€” always run the specified response route action.
  • --router-list โ€” list enabled routers. the router census ๐Ÿฆ‹
  • --routers-list โ€” same but plural: list enabled routers.
  • --error-page-403 โ€” add an error page (html) for the managed 403 response. pretty page for the forbidden moment โœจ
  • --error-page-404 โ€” add an error page (html) for the managed 404 response. your custom "not found" serve ๐Ÿ’…
  • --error-page-500 โ€” add an error page (html) for the managed 500 response. soft landing for the server's bad day ๐Ÿ˜ญ
  • --websockets-ping-freq โ€” set the frequency (in seconds) of websockets automatic ping packets. ping ping ping ๐Ÿ“
  • --websocket-ping-freq โ€” same setting, singular-named twin: set the frequency (in seconds) of websockets automatic ping packets.
  • --websockets-pong-tolerance โ€” set the tolerance (in seconds) of the websockets ping/pong subsystem. how long you'll wait for the pong ๐Ÿซถ
  • --websocket-pong-tolerance โ€” the alias: set the tolerance (in seconds) of the websockets ping/pong subsystem.
  • --websockets-max-size โ€” set the max allowed size of websocket messages (in Kbytes, default 1024). cap those messages bestie ๐Ÿ“
  • --websocket-max-size โ€” same numbers, singular spelling: set the max allowed size of websocket messages (in Kbytes, default 1024).
  • --chunked-input-limit โ€” set the max size of a chunked input part (default 1MB, in bytes). chunk responsibly ๐Ÿงฉ
  • --chunked-input-timeout โ€” set default timeout for chunked input. no waiting around forever โณ
  • --clock โ€” set a clock source. timekeeping, but make it configurable โฐ
  • --clock-list โ€” list enabled clocks. see all your time sources lined up ๐ŸŒธ
  • --clocks-list โ€” lists every clock that's currently enabled. a lil inventory moment โœจ
  • --add-header โ€” automatically adds HTTP headers to the response. you don't lift a finger, they just appear ๐Ÿ’…
  • --rem-header โ€” automatically removes the HTTP header you specify from the response.
  • --del-header โ€” same job, same energy: automatically removes the specified HTTP header from the response. (two names, one destiny ๐Ÿซถ)
  • --collect-header โ€” stores the response header you name into a request var. syntax: header var
  • --response-header-collect โ€” also stores the specified response header in a request var. syntax: header var
  • --pull-header โ€” stores the specified response header in a request var and yanks it out of the response entirely. syntax: header var it's giving "you can look but you can't keep it" ๐Ÿ˜ญ

  • --check-static โ€” checks for static files in the directory you name. ๐Ÿ“
  • --check-static-docroot โ€” checks for static files in the requested DOCUMENT_ROOT.
  • --static-check โ€” checks for static files in the specified directory. (yes bestie, this is the same thing wearing a different outfit โœจ)
  • --static-map โ€” maps a mountpoint to a static directory (or a file).
  • --static-map2 โ€” like --static-map, except it completely appends the requested resource to the docroot.
  • --static-skip-ext โ€” skips the specified extension when doing staticfile checks.
  • --static-index โ€” searches for the file you specify when a directory is requested.
  • --static-safe โ€” skips security checks if the file lives under the specified path. handle with care, bestie โ€” this one's the "trust me bro" of paths ๐Ÿšจ
  • --static-cache-paths โ€” puts resolved paths into the uWSGI cache for the number of seconds you specify. speedrun energy ๐Ÿ”ฅ
  • --static-cache-paths-name โ€” uses the cache you specify for those static paths.
  • --mimefile โ€” sets the mime types file path. default /etc/mime.types
  • --mime-file โ€” sets the mime types file path. default /etc/mime.types (twins ๐ŸŽ€)
  • --static-expires-type โ€” sets the Expires header based on content type.
  • --static-expires-type-mtime โ€” sets the Expires header based on content type and file mtime.
  • --static-expires โ€” sets the Expires header based on a filename regexp.
  • --static-expires-mtime โ€” sets the Expires header based on a filename regexp and file mtime.
  • --static-expires-uri โ€” sets the Expires header based on a REQUEST_URI regexp.
  • --static-expires-uri-mtime โ€” sets the Expires header based on a REQUEST_URI regexp and file mtime.
  • --static-expires-path-info โ€” sets the Expires header based on a PATH_INFO regexp.
  • --static-expires-path-info-mtime โ€” sets the Expires header based on a PATH_INFO regexp and file mtime. the mtime variants are just the glow-up versions fr fr โœจ

  • --static-gzip โ€” if the regexp you supply matches the static file translation, it'll go looking for a gzip version. zip zip hooray ๐Ÿฆ‹
  • --static-gzip-all โ€” checks for a gzip version of all requested static files.
  • --static-gzip-dir โ€” checks for a gzip version of all requested static files inside the dir/prefix you specify.
  • --static-gzip-prefix โ€” checks for a gzip version of all requested static files inside the specified dir/prefix.
  • --static-gzip-ext โ€” checks for a gzip version of all requested static files with the ext/suffix you specify.
  • --static-gzip-suffix โ€” checks for a gzip version of all requested static files with the specified ext/suffix. (dir/prefix and ext/suffix are each just two names for one vibe ๐Ÿ’œ)
  • --honour-range โ€” enables support for the HTTP Range header. resumable downloads said hello ๐Ÿ‘‘
  • --offload-threads โ€” sets how many offload threads to spawn. per-worker, default 0
  • --offload-thread โ€” sets how many offload threads to spawn. per-worker, default 0 same same ๐Ÿซถ
  • --file-serve-mode โ€” sets the static file serving mode.
  • --fileserve-mode โ€” sets the static file serving mode. (told you, same same ๐Ÿ˜Œ)
  • --disable-sendfile โ€” disables sendfile() and relies on the boring old read()/write(). not everything needs to be fast, sometimes it needs to be boring ๐Ÿ’€
  • --check-cache โ€” checks for response data in the cache you specify. leave it empty for the default cache. โœจ
  • --close-on-exec โ€” sets close-on-exec on connection sockets. this could be required if you're spawning processes inside requests.
  • --close-on-exec2 โ€” sets close-on-exec on server sockets. also could be required for spawning processes in requests.
  • --mode โ€” sets a uWSGI custom mode.
  • --env โ€” sets an environment variable.
  • --envdir โ€” loads a daemontools compatible envdir.
  • --early-envdir โ€” loads a daemontools compatible envdir ASAP. like, immediately immediately ๐Ÿ’…
  • --unenv โ€” unsets an environment variable.
  • --vacuum โ€” tries to remove all of the generated file/sockets. leave no trace, main character behaviour ๐ŸŒธ
  • --file-write โ€” writes the specified content to the specified file before privileges drop. syntax: file=value
  • --cgroup โ€” puts the processes into the cgroup you specify.
  • --cgroup-opt โ€” sets a value in the specified cgroup option.
  • --cgroup-dir-mode โ€” sets permission for the cgroup directory. default is 700
  • --namespace โ€” runs in a new namespace under the rootfs you specify.
  • --namespace-keep-mount โ€” keeps the mountpoint you specify inside your namespace.
  • --ns โ€” runs in a new namespace under the specified rootfs. (yes, it's --namespace again, they're matching ๐ŸŽ€)
  • --namespace-net โ€” adds a network namespace.
  • --ns-net โ€” adds a network namespace. iconic duo behaviour โœจ

  • --enable-proxy-protocol โ€” enables PROXY1 protocol support. only for http parsers.
  • --reuse-port โ€” enables the REUSE_PORT flag on the socket. BSD only, bestie ๐Ÿšจ
  • --tcp-fast-open โ€” enables the TCP_FASTOPEN flag on TCP sockets with the qlen value you specify.
  • --tcp-fastopen โ€” enables the TCP_FASTOPEN flag on TCP sockets with the specified qlen value. twinning ๐Ÿ’ซ
  • --tcp-fast-open-client โ€” uses sendto(..., MSG_FASTOPEN, ...) instead of connect() if it's supported.
  • --tcp-fastopen-client โ€” uses sendto(..., MSG_FASTOPEN, ...) instead of connect() if supported. same, obviously ๐Ÿซถ
  • --zerg โ€” attaches to a zerg server. ๐Ÿ›
  • --zerg-fallback โ€” falls back to normal sockets if the zerg server isn't available. safety net activated ๐Ÿ•ธ๏ธ
  • --zerg-server โ€” enables the zerg server on the UNIX socket you specify.
  • --cron โ€” adds a cron task.
  • --cron2 โ€” adds a cron task using key=val syntax.
  • --unique-cron โ€” adds a unique cron task.
  • --cron-harakiri โ€” sets the maximum time (in seconds) we wait for a cron command to complete. yes bestie, harakiri means it gets killed ๐Ÿ’€
  • --legion-cron โ€” adds a cron task that's runnable only when the instance is a lord of the legion you specify. ๐Ÿ‘‘
  • --cron-legion โ€” adds a cron task runnable only when the instance is a lord of the specified legion. ๐Ÿ‘‘
  • --unique-legion-cron โ€” adds a unique cron task runnable only when the instance is a lord of the specified legion. ๐Ÿ‘‘
  • --unique-cron-legion โ€” adds a unique cron task runnable only when the instance is a lord of the specified legion. four names, one very lordly vibe ๐Ÿ‘‘
  • --loop โ€” selects the uWSGI loop engine.
  • --loop-list โ€” lists every enabled loop engine.
  • --loops-list โ€” lists every enabled loop engine. (plural, same list ๐ŸŒˆ)
  • --worker-exec โ€” runs the command you specify as a worker.
  • --worker-exec2 โ€” runs the specified command as a worker, after the post_fork hook.
  • --attach-daemon โ€” attaches a command/daemon to the master process. the command has to not go in background.
  • --attach-control-daemon โ€” attaches a command/daemon to the master process (again, the command has to not go in background), and when the daemon dies, the master dies too. ride or die, literally ๐Ÿšจ
  • --smart-attach-daemon โ€” attaches a command/daemon to the master process, managed by a pidfile. the command has to daemonize.
  • --smart-attach-daemon2 โ€” attaches a command/daemon to the master process, managed by a pidfile. the command has to NOT daemonize. opposite day ๐Ÿ’…
  • --legion-attach-daemon โ€” same as --attach-daemon, but the daemon only runs on the legion lord node. ๐Ÿ‘‘
  • --legion-smart-attach-daemon โ€” same as --smart-attach-daemon, but the daemon only runs on the legion lord node. ๐Ÿ‘‘
  • --legion-smart-attach-daemon2 โ€” same as --smart-attach-daemon2, but the daemon only runs on the legion lord node. ๐Ÿ‘‘
  • --daemons-honour-stdin โ€” does not change the stdin of external daemons to /dev/null. let them have stdin, as a treat ๐Ÿ“
  • --attach-daemon2 โ€” the attach-daemon keyval variant. it supports smart modes too. โœจ

  • --plugins โ€” loads uWSGI plugins.
  • --plugin โ€” loads uWSGI plugins. same thing, one less letter ๐ŸŽ€
  • --need-plugins โ€” loads uWSGI plugins, but exits on error. no plugin, no party ๐Ÿ˜ญ
  • --need-plugin โ€” loads uWSGI plugins and exits on error. yep, the singular twin ๐Ÿซถ
  • --plugins-dir โ€” adds a directory to the uWSGI plugin search path.
  • --plugin-dir โ€” adds a directory to the uWSGI plugin search path. same same ๐ŸŒธ
  • --plugins-list โ€” lists every enabled plugin.
  • --plugin-list โ€” lists every enabled plugin. (plural, same list, we been knew ๐Ÿ’…)
  • --autoload โ€” tries to automatically load plugins whenever unknown options show up. โœจ mind reading mode โœจ
  • --dlopen โ€” blindly loads a shared library. blindly!! no cap, that's the actual word ๐Ÿ”ฅ
  • --allowed-modifiers โ€” a comma separated list of allowed modifiers.
  • --remap-modifier โ€” remaps a request modifier from one id to another.
  • --dump-options โ€” dumps the full list of available options. every single one bestie, buckle up ๐Ÿซถ
  • --show-config โ€” shows the current config, reformatted as ini.
  • --binary-append-data โ€” returns the content of a resource to stdout so you can append it to a uwsgi binary. for data:// usage.
  • --print โ€” simple print.
  • --iprint โ€” simple print, but the immediate version. โšก
  • --exit โ€” forces exit() of the instance. the dramatic exit ๐Ÿ’€๐Ÿ‘‹
  • --cflags โ€” reports uWSGI CFLAGS. useful for building external plugins.
  • --dot-h โ€” dumps the uwsgi.h used for building the core. useful for building external plugins. โœจ
  • --config-py โ€” dumps the uwsgiconfig.py used for building the core. useful for building external plugins. โœจ
  • --build-plugin โ€” builds a uWSGI plugin for the current binary. ๐Ÿ”จ
  • --version โ€” prints the uWSGI version. the classic ๐Ÿ‘‘
  • --response-headers-limit โ€” sets the response header maximum size. default: 64k

and that's the whole list bestie, you ate that ๐Ÿฝ๏ธโœจ this page was uwsgi_php version 2.0.31-2, dated January 2026 โ€” go forth and configure, you absolute icon ๐Ÿ’…๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from