UWSGI_RADOS(1)
๐ธ NAME ๐ธ
bestie. sit down. hydrate. because we're about to talk about uwsgi_rados โ aka the fast (pure C), self-healing, developer-friendly WSGI server. yes. all of that. in one sentence. she's an icon, she's a legend, and she is the moment.
this is the manual page for UWSGI_RADOS(1), filed under User Commands, and it is long, so we're doing it in parts. no skipping. i will know. ๐ซถ
โจ SYNOPSIS โจ
like. the whole vibe in one line:
uwsgi-core [options...]
that's it. that's the girl. everything else is just options on top of options. slay. ๐
๐ DESCRIPTION ๐
okay so this is the part where we go through literally every single option, one at a time, and i tell you what each one does. no cap, no summarising, no "and then there were more options, you get it". we're doing all of them. grab a snack. ๐
๐ the socket era ๐
-s,--socketโ bind to the specified UNIX/TCP socket using the default protocol. the classic. the starter pack.-s,--uwsgi-socketโ bind to the specified UNIX/TCP socket using the uwsgi protocol. same flag letter, different protocol, we love a multitasker.--suwsgi-socketโ bind to the specified UNIX/TCP socket using the uwsgi protocol over SSL. secure little thing.--ssl-socketโ bind to the specified UNIX/TCP socket using the uwsgi protocol over SSL. yes bestie, she also exists, and she's separate, and i'm not merging them.--http-socketโ bind to the specified UNIX/TCP socket using the HTTP protocol. your browser's new bestie.--http-socket-modifier1โ force the specifiedmodifier1when using the HTTP protocol. you don't get to choose naturally, so here's your override. ๐--http-socket-modifier2โ force the specifiedmodifier2when using the HTTP protocol. same energy, different digit.--http11-socketโ bind to the specified UNIX/TCP socket using HTTP 1.1 (Keep-Alive) protocol. she stays connected. obsessed.--https-socketโ bind to the specified UNIX/TCP socket using HTTPS protocol. http but with a glow-up and a certificate.--https-socket-modifier1โ force the specifiedmodifier1when using the HTTPS protocol.--https-socket-modifier2โ force the specifiedmodifier2when using the HTTPS protocol.--fastcgi-socketโ bind to the specified UNIX/TCP socket using FastCGI protocol.--fastcgi-nph-socketโ bind to the specified UNIX/TCP socket using FastCGI protocol (nph mode). nph. periodt.--fastcgi-modifier1โ force the specifiedmodifier1when using FastCGI protocol.--fastcgi-modifier2โ force the specifiedmodifier2when using FastCGI protocol.--scgi-socketโ bind to the specified UNIX/TCP socket using SCGI protocol.--scgi-nph-socketโ bind to the specified UNIX/TCP socket using SCGI protocol (nph mode).--scgi-modifier1โ force the specifiedmodifier1when using SCGI protocol.--scgi-modifier2โ force the specifiedmodifier2when using SCGI protocol.--raw-socketโ bind to the specified UNIX/TCP socket using RAW protocol. no manners, no framing, just vibes.--raw-modifier1โ force the specifiedmodifier1when using RAW protocol.--raw-modifier2โ force the specifiedmodifier2when using RAW protocol.--puwsgi-socketโ bind to the specified UNIX/TCP socket using persistent uwsgi protocol (puwsgi). she never leaves the group chat.--protocolโ force the specified protocol for default sockets.--socket-protocolโ force the specified protocol for default sockets. (yes, same description. no, i'm not skipping one. they're both here. ๐)--shared-socketโ create a shared socket for advanced jailing or ipc. fancy girl behaviour.--undeferred-shared-socketโ create a shared socket for advanced jailing or ipc (undeferred mode).
๐ง๐ณ workers, harakiri & the whole crew ๐ง๐ณ
-p,--processesโ spawn the specified number of workers/processes. more workers = more hands = more slay.-p,--workersโ spawn the specified number of workers/processes. same flag, same job, different name. they're twins, not duplicates. ๐ซถ--thunder-lockโ serializeaccept()usage (if possible). the "if possible" is doing a lot of heavy lifting there bestie, don't @ me.-t,--harakiriโ set harakiri timeout. yes it's named after ritual suicide. yes it means your worker gets merked if it's too slow. moving on. ๐ญ--harakiri-verboseโ enable verbose mode for harakiri. so you get the full play-by-play of the murder.--harakiri-graceful-timeoutโ interval between graceful harakiri attempt and asigkill. so: ask nicely, then don't.--harakiri-graceful-signalโ use this signal instead ofsigtermfor graceful harakiri attempts. customise your goodbye. ๐--harakiri-queue-thresholdโ only trigger harakiri if queue is greater than this threshold. she's polite about it.--harakiri-no-arhโ do not enable harakiri during after-request-hook.--no-harakiri-arhโ do not enable harakiri during after-request-hook. (same thing, different order of words. we love a trio.)--no-harakiri-after-req-hookโ do not enable harakiri during after-request-hook. three of them. three. i'm just the messenger. ๐--backtrace-depthโ set backtrace depth. how far back in the drama do we go.--mule-harakiriโ set harakiri timeout for mule tasks. even the mules get timed out.
๐ config & placeholder nation ๐
-x,--xmlconfigโ load config from xml file.-x,--xmlโ load config from xml file. twin behaviour again, we stan.--configโ load configuration using the pluggable system. plug it in, plug it in. ๐--fallback-configโ re-exec uwsgi with the specified config when exit code is1. the backup plan. the situationship safety net.--strictโ enable strict mode (placeholder cannot be used). no placeholders. none. she's on her no-nonsense era.--skip-zeroโ skip check of file descriptor0.--skip-atexitโ skipatexithooks (ignored by the master).--skip-atexit-teardownโ skipatexitteardown (ignored by the master).-S,--setโ set a placeholder or an option. versatile queen.--set-placeholderโ set a placeholder.--set-phโ set a placeholder. short queen.--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). and yes,sytaxis spelled like that in the original and i am not fixing it, she's canon now. ๐ญ
๐ the opt logic cinematic universe ๐
this whole section is basicallyif/forbut for your config file. lowkey iconic.
--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 from1).--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 hostname against a regular expression.--if-not-hostname-matchโ (opt logic) try to match 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.
๐ค write errors & the SIGPIPE agenda ๐ค
--ignore-sigpipeโ do not report (annoying)SIGPIPE. she said enough.--ignore-write-errorsโ do not report (annoying)write()/writev()errors. same energy.--write-errors-toleranceโ set the maximum number of allowed write errors (default: no tolerance). default is zero patience. periodt.--write-errors-exception-onlyโ only raise an exception on write errors giving control to the app itself.--disable-write-exceptionโ disable exception generation onwrite()/writev().
๐งฉ templates, includes & daemon drama ๐งฉ
--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. bye bestie, you live in the background now. ๐--daemonize2โ daemonize uWSGI after app loading. slightly more considerate about it.--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.
โ๏ธ tuning, buffers & the little knobs โ๏ธ
-l,--listenโ set the socket listen queue size.-v,--max-varsโ set the amount of internaliovec/varsstructures.--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โ forceCGI-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. same flag letter, same job, two names. iconic.--chown-socketโchownunix sockets.--umaskโ setumask.--freebindโ put socket infreebindmode.--map-socketโ map sockets to specific workers.-T,--enable-threadsโ enable threads (stub option this is true by default). so she's already on. she was always on. ๐--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. she does not do empty-handed. ๐ค-M,--masterโ enable master process. the main character, literally.--honour-stdinโ do not remapstdinto/dev/null.
๐ the emperor section ๐ (yes she gets her own)
--emperorโ run the Emperor.--emperor-proxy-socketโ force the vassal to became an Emperor proxy. (and yes,became. original. keeping it. ๐ซถ)--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 formtime.--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.
okay bestie that's part one and there is so much more coming. don't go anywhere. ๐ฆ
--emperor-pidfileโ write the Emperor pid in the file you specify. Emperor pid goes here, bestie ๐--emperor-tyrantโ put the Emperor in Tyrant mode. Tyrant mode, periodt ๐--emperor-tyrant-nofollowโ in Tyrant mode, do not follow symlinks when checking for uid/gid. no symlink following, okay? ๐--emperor-statsโ run the Emperor stats server. ๐--emperor-stats-serverโ run the Emperor stats server. same stats server, different flag name ๐--early-emperorโ spawn the emperor as soon as possible. early bird energy ๐ฆ--emperor-broodlordโ run the emperor in BroodLord mode. BroodLord mode activated ๐ฆ--emperor-throttleโ set throttling level (in milliseconds) for bad behaving vassals (default1000). bad vassals get throttled โณ--emperor-max-throttleโ set max throttling level (in milliseconds) for bad behaving vassals (default3 minutes). max throttle, bestie ๐--emperor-magic-execโ prefix vassals config files withexec://if they have the executable bit. magic exec, iykyk โจ--emperor-on-demand-extensionโ search for a text file (vassal name + extension) containing the on demand socket name. on demand vibes ๐--emperor-on-demand-extโ search for a text file (vassal name + extension) containing the on demand socket name. same thing, shorter name ๐--emperor-on-demand-directoryโ enable on demand mode binding to the unix socket in the specified directory named like the vassal +.socket. unix socket time ๐งฆ--emperor-on-demand-dirโ enable on demand mode binding to the unix socket in the specified directory named like the vassal +.socket. directory edition ๐๏ธ--emperor-on-demand-execโ use the output of the specified command as on demand socket name (the vassal name is passed as the only argument). exec says the socket name ๐ฃ--emperor-extra-extensionโ allows the specified extension in the Emperor (vassal will be called with--config). extra extension allowed โ--emperor-extra-extโ allows the specified extension in the Emperor (vassal will be called with--config). same but short โ๏ธ--emperor-no-blacklistโ disable Emperor blacklisting subsystem. no blacklist, no problem ๐ซ--emperor-use-cloneโ useclone()instead offork()passing the specifiedunshare()flags. clone() era ๐งฌ--emperor-graceful-shutdownโ use vassals graceful shutdown during ragnarok. ragnarok but make it graceful ๐ช๏ธ--emperor-capโ set vassals capability. cap it off ๐งข--vassals-capโ set vassals capability. same cap energy ๐งข--vassal-capโ set vassals capability. one vassal, one cap ๐งข--imperial-monitor-listโ list enabled imperial monitors. show me the monitors ๐--imperial-monitors-listโ list enabled imperial monitors. plural monitors, same list ๐--vassals-inheritโ add config templates to vassals config (uses--inherit). inherit the config ๐งฌ--vassals-includeโ include config templates to vassals config (uses--includeinstead of--inherit). include, not inherit ๐--vassals-inherit-beforeโ add config templates to vassals config (uses--inherit, parses before the vassal file). inherit before, bestie โฎ๏ธ--vassals-include-beforeโ include config templates to vassals config (uses--includeinstead of--inherit, parses before the vassal file). include before โฎ๏ธ--vassals-start-hookโ run the specified command before each vassal starts. start hook, go off ๐--vassals-stop-hookโ run the specified command after vassal's death. stop hook after death โฐ๏ธ--vassal-sosโ ask emperor for reinforcement when overloaded. SOS bestie ๐--vassal-sos-backlogโ ask emperor for sos if backlog queue has more items than the value specified. backlog SOS threshold ๐--vassals-setโ automatically set the specified option (via--set) for every vassal. set it for all vassals ๐ ๏ธ--vassal-setโ automatically set the specified option (via--set) for every vassal. same set, singular flag ๐ ๏ธ--heartbeatโ announce healthiness to the emperor. heartbeat check ๐--reload-mercyโ set the maximum time (in seconds) we wait for workers and other processes to die during reload/shutdown. mercy time โฑ๏ธ--worker-reload-mercyโ set the maximum time (in seconds) a worker can take to reload/shutdown (default is60). worker mercy: 60 seconds default ๐--mule-reload-mercyโ set the maximum time (in seconds) a mule can take to reload/shutdown (default is60). mule mercy: 60 seconds default ๐ด--exit-on-reloadโ force exit even if a reload is requested. exit on reload, no takebacks ๐ช--die-on-termโ exit instead of brutal reload onSIGTERM. die on TERM ๐--force-gatewayโ force the spawn of the first registered gateway without a master. force gateway, no master needed ๐ช-h|--helpโ show this help. help is here ๐-h|--usageโ show this help. usage is help ๐--print-symโ print content of the specified binary symbol. print the symbol ๐ฃ--print-symbolโ print content of the specified binary symbol. same symbol, longer name ๐ฃ-r|--reaperโ callwaitpid(-1,...)after each request to get rid of zombies. reap those zombies ๐ง-R|--max-requestsโ reload workers after the specified amount of managed requests. max requests, then reload ๐--max-requests-deltaโ add (worker_id * delta) to themax_requestsvalue of each worker. delta math for max requests โ--min-worker-lifetimeโ number of seconds worker must run before being reloaded (default is10). min worker lifetime: 10s โณ--max-worker-lifetimeโ reload workers after the specified amount of seconds (default is disabled). max worker lifetime, off by default โฒ๏ธ--max-worker-lifetime-deltaโ add (worker_id * delta) seconds to themax_worker_lifetimevalue of each worker. delta for max worker lifetime โ-z|--socket-timeoutโ set internal sockets timeout. socket timeout vibes โฐ--no-fd-passingโ disable file descriptor passing. no fd passing ๐ซ--locksโ create the specified number of shared locks. locks, locks, locks ๐--lock-engineโ set the lock engine. choose your lock engine โ๏ธ--ftokโ set the ipcsem key viaftok()for avoiding duplicates. ftok() for unique keys ๐--persistent-ipcsemโ do not remove ipcsem's on shutdown. keep ipcsem around ๐พ-A|--sharedareaโ create a raw shared memory area of specified pages (note: it supports keyval too). sharedarea, keyval supported too ๐ง--safe-fdโ do not close the specified file descriptor. safe fd, don't close it ๐ก๏ธ--fd-safeโ do not close the specified file descriptor. same safe fd energy ๐ก๏ธ--cacheโ create a shared cache containing given elements. cache time ๐๏ธ--cache-blocksizeโ set cache blocksize. cache blocksize ๐ฆ--cache-storeโ enable persistent cache to disk. persistent cache to disk ๐ฝ--cache-store-syncโ set frequency of sync for persistent cache. sync frequency for cache ๐--cache-no-expireโ disable auto sweep of expired items. no auto expire sweep ๐ซ--cache-expire-freqโ set the frequency of cache sweeper scans (default3 seconds). cache sweeper scans: 3s default ๐งน--cache-report-freed-itemsโ constantly report the cache item freed by the sweeper (use only for debug). debug only: report freed items ๐--cache-udp-serverโ bind the cache udp server (used only for set/update/delete) to the specified socket. cache UDP server socket ๐ก--cache-udp-nodeโ send cache update/deletion to the specified cache udp server. send updates to UDP node ๐ค--cache-syncโ copy the whole content of another uWSGI cache server on server startup. sync whole cache on startup ๐--cache-use-last-modifiedโ updatelast_modified_attimestamp on every cache item modification (default is disabled). last_modified_at updates, off by default ๐--add-cache-itemโ add an item in the cache. add cache item โ--load-file-in-cacheโ load a static file in the cache. load file into cache ๐--load-file-in-cache-gzipโ load a static file in the cache with gzip compression. load file into cache, gzipped ๐๏ธ--cache2โ create a new generation shared cache (keyval syntax). cache2, keyval syntax โจ--queueโ enable shared queue. shared queue on ๐ถ--queue-blocksizeโ set queue blocksize. queue blocksize ๐ฆ--queue-storeโ enable persistent queue to disk. persistent queue to disk ๐ฝ--queue-store-syncโ set frequency of sync for persistent queue. queue sync frequency ๐-Q|--spoolerโ run a spooler on the specified directory. spooler time ๐งต--spooler-externalโ map spoolers requests to a spooler directory managed by an external instance. external spooler directory ๐--spooler-orderedโ try to order the execution of spooler tasks. ordered spooler tasks ๐--spooler-chdirโchdir()to specified directory before each spooler task. chdir before spooler task ๐--spooler-processesโ set the number of processes for spoolers. spooler process count ๐ฏ--spooler-quietโ do not be verbose with spooler tasks. quiet spooler ๐คซ--spooler-max-tasksโ set the maximum number of tasks to run before recycling a spooler. max tasks before spooler recycle ๐--spooler-harakiriโ set harakiri timeout for spooler tasks. harakiri timeout for spooler ๐ก๏ธ--spooler-frequencyโ set spooler frequency. spooler frequency ๐ถ--spooler-freqโ set spooler frequency. same frequency, short name ๐ถ--muleโ add a mule. add a mule ๐ด--mulesโ add the specified number of mules. add many mules ๐ด๐ด--farmโ add a mule farm. mule farm time ๐--mule-msg-sizeโ set mule message buffer size. mule message buffer size ๐จ--signalโ send a uwsgi signal to a server. send a signal ๐ถ--signal-bufsizeโ set buffer size for signal queue. signal queue buffer size ๐ฆ--signals-bufsizeโ set buffer size for signal queue. same signal buffer size ๐ฆ--signal-timerโ add a timer (syntax:<signal> <seconds>). signal timer syntax โฒ๏ธ--timerโ add a timer (syntax:<signal> <seconds>). timer alias โฒ๏ธ--signal-rbtimerโ add a redblack timer (syntax:<signal> <seconds>). redblack timer syntax ๐ณ--rbtimerโ add a redblack timer (syntax:<signal> <seconds>). rbtimer alias ๐ณ--rpc-maxโ maximum number of rpc slots (default:64). rpc max: 64 default ๐-L|--disable-loggingโ disable request logging. no request logging ๐--flockโ lock the specified file before starting, exit if locked. flock and exit if locked ๐--flock-waitโ lock the specified file before starting, wait if locked. flock and wait if locked โณ--flock2โ lock the specified file after logging/daemon setup, exit if locked. flock2: after logging/daemon, exit if locked ๐--flock-wait2โ lock the specified file after logging/daemon setup, wait if locked. flock-wait2: after logging/daemon, wait if locked โณ--pidfileโ create pidfile (before privileges drop). pidfile before privilege drop ๐--pidfile2โ create pidfile (after privileges drop). pidfile after privilege drop ๐--safe-pidfileโ create safe pidfile (before privileges drop). safe pidfile before drop ๐ก๏ธ--safe-pidfile2โ create safe pidfile (after privileges drop). safe pidfile after drop ๐ก๏ธ--chrootโchroot()to the specified directory. chroot jail ๐ฐ--pivot-rootโpivot_root()to the specified directories (new_root and put_old must be separated with a space). pivot_root with new_root and put_old separated by space ๐--pivot_rootโpivot_root()to the specified directories (new_root and put_old must be separated with a space). same pivot_root, underscore spelling ๐--uidโ setuid to the specified user/uid. setuid to user/uid ๐ค--gidโ setgid to the specified group/gid. setgid to group/gid ๐ฅ--add-gidโ add the specified group id to the process credentials. add group id to credentials โ--immediate-uidโ setuid to the specified user/uid IMMEDIATELY. setuid IMMEDIATELY โก--immediate-gidโ setgid to the specified group/gid IMMEDIATELY. setgid IMMEDIATELY โก--no-initgroupsโ disable additional groups set viainitgroups(). no initgroups extra groups ๐ซ--capโ set process capability. set process capability ๐งข--unshareโunshare()part of the processes and put it in a new namespace. unshare into new namespace ๐ช--unshare2โunshare()part of the processes and put it in a new namespace after rootfs change. unshare after rootfs change ๐ช--setns-socketโ expose a unix socket returning namespace fds from/proc/self/ns. setns socket exposing namespace fds ๐--setns-socket-skipโ skip the specified entry when sending setns file descriptors. skip entry for setns fds โญ๏ธ--setns-skipโ skip the specified entry when sending setns file descriptors. same skip, shorter name โญ๏ธ--setnsโ join a namespace created by an external uWSGI instance. join external namespace ๐ช--setns-preopenโ open/proc/self/nsas soon as possible and cache fds. preopen /proc/self/ns and cache fds ๐--jailedโ marks the instance as jailed (which forces thepost_jailhooks to actually run). the vibes are incarcerated fr ๐--reforkโ does afork()again after privileges drop. super useful for jailing systems ๐ฆ--re-forkโ same thing bestie: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โ yep, the twin:fork()again before privileges drop. useful for jailing systems.--refork-post-jailโfork()again after jailing. useful for jailing systems ๐--re-fork-post-jailโ and its other spelling:fork()again after jailing. useful for jailing systems.
โจ the hook era โจ
ok so hooks are like little callbacks that fire at Very Specific Moments. there's a LOT of them. buckle up bestie ๐ซถ
--hook-asapโ runs the specified hook as soon as possible โก--hook-pre-jailโ runs the specified hook before jailing.--hook-post-jailโ runs the specified hook after jailing.--hook-in-jailโ runs the specified hook in jail after initialization.--hook-as-rootโ runs the specified hook before privileges drop ๐--hook-as-userโ runs the specified hook after privileges drop.--hook-as-user-atexitโ runs the specified hook before app exit and reload.--hook-pre-appโ runs the specified hook before app loading.--hook-post-appโ runs the specified hook after app loading.--hook-post-forkโ runs the specified hook after each fork.--hook-acceptingโ runs the specified hook after each worker enters the accepting phase ๐--hook-accepting1โ runs the specified hook after the first worker enters the accepting phase.--hook-accepting-onceโ runs the specified hook after each worker enters the accepting phase (once per-instance).--hook-accepting1-onceโ runs the specified hook after the first worker enters the accepting phase (once per instance).--hook-master-startโ runs the specified hook when the Master starts ๐--hook-touchโ runs the specified hook when the specified file is touched (syntax:<file> <action>).--hook-emperor-startโ runs the specified hook when the Emperor starts.--hook-emperor-stopโ runs the specified hook when the Emperor sends a stop message.--hook-emperor-reloadโ runs the specified hook when the Emperor sends a reload message.--hook-emperor-lostโ runs the specified hook when the Emperor connection is lost ๐ญ--hook-as-vassalโ runs the specified hook beforeexec()ing the vassal.--hook-as-emperorโ runs the specified hook in the emperor after the vassal has been started.--hook-as-muleโ runs the specified hook in each mule ๐ด--hook-as-gatewayโ runs the specified hook in each gateway.--after-request-hookโ runs the specified function/symbol after each request.--after-request-callโ runs the specified function/symbol after each request.
๐ the exec era ๐
--exec-asapโ runs the specified command as soon as possible โก--exec-pre-jailโ runs the specified command before jailing.--exec-post-jailโ runs the specified command after jailing.--exec-in-jailโ runs the specified command in jail after initialization.--exec-as-rootโ runs the specified command before privileges drop ๐--exec-as-userโ runs the specified command after privileges drop.--exec-as-user-atexitโ runs the specified command before app exit and reload.--exec-pre-appโ runs the specified command before app loading.--exec-post-appโ runs the specified command after app loading.--exec-as-vassalโ runs the specified command beforeexec()ing the vassal.--exec-as-emperorโ runs the specified command in the emperor after the vassal has been started.
๐ฆ mount / umount section, she's here ๐ฆ
--mount-asapโ mounts filesystem as soon as possible โก--mount-pre-jailโ mounts filesystem before jailing.--mount-post-jailโ mounts filesystem after jailing.--mount-in-jailโ mounts filesystem in jail after initialization.--mount-as-rootโ mounts filesystem before privileges drop ๐--mount-as-vassalโ mounts filesystem beforeexec()ing the vassal.--mount-as-emperorโ mounts filesystem in the emperor after the vassal has been started.--umount-asapโ unmounts filesystem as soon as possible โก--umount-pre-jailโ unmounts filesystem before jailing.--umount-post-jailโ unmounts filesystem after jailing.--umount-in-jailโ unmounts filesystem in jail after initialization.--umount-as-rootโ unmounts filesystem before privileges drop ๐--umount-as-vassalโ unmounts filesystem beforeexec()ing the vassal.--umount-as-emperorโ unmounts filesystem in the emperor after the vassal has been started.
๐ waiting era (she's patient, she's giving main character) ๐
--wait-for-interfaceโ waits for the specified network interface to come up before running root hooks.--wait-for-interface-timeoutโ sets the timeout forwait-for-interface.--wait-interfaceโ waits for the specified network interface to come up before running root hooks.--wait-interface-timeoutโ sets the timeout forwait-for-interface.--wait-for-ifaceโ waits for the specified network interface to come up before running root hooks.--wait-for-iface-timeoutโ sets the timeout forwait-for-interface.--wait-ifaceโ waits for the specified network interface to come up before running root hooks.--wait-iface-timeoutโ sets the timeout forwait-for-interface.--wait-for-fsโ waits for the specified filesystem item to appear before running root hooks.--wait-for-fileโ waits for the specified file to appear before running root hooks ๐--wait-for-dirโ waits for the specified directory to appear before running root hooks ๐--wait-for-mountpointโ waits for the specified mountpoint to appear before running root hooks.--wait-for-fs-timeoutโ sets the timeout forwait-for-fs/file/dir.--wait-for-socketโ waits for the specified socket to be ready before loading apps ๐--wait-for-socket-timeoutโ sets the timeout forwait-for-socket.
๐ง the call era ๐ง
--call-asapโ calls the specified function as soon as possible โก--call-pre-jailโ calls the specified function before jailing.--call-post-jailโ calls the specified function after jailing.--call-in-jailโ calls the specified function in jail after initialization.--call-as-rootโ calls the specified function before privileges drop ๐--call-as-userโ calls the specified function after privileges drop.--call-as-user-atexitโ calls the specified function before app exit and reload.--call-pre-appโ calls the specified function before app loading.--call-post-appโ calls the specified function after app loading.--call-as-vassalโ calls the specifiedfunction()beforeexec()ing the vassal.--call-as-vassal1โ calls the specifiedfunction(char *)beforeexec()ing the vassal.--call-as-vassal3โ calls the specifiedfunction(char *, uid_t, gid_t)beforeexec()ing the vassal.--call-as-emperorโ calls the specifiedfunction()in the emperor after the vassal has been started.--call-as-emperor1โ calls the specifiedfunction(char *)in the emperor after the vassal has been started.--call-as-emperor2โ calls the specifiedfunction(char *, pid_t)in the emperor after the vassal has been started.--call-as-emperor4โ calls the specifiedfunction(char *, pid_t, uid_t, gid_t)in the emperor after the vassal has been started.
๐ config loading + server modes ๐
--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โ disable deferred-accept on sockets.--tcp-nodelayโ enable TCP NODELAY on each request.--so-keepaliveโ enable TCP KEEPALIVEs.--so-send-timeoutโ setSO_SNDTIMEO.--socket-send-timeoutโ setSO_SNDTIMEO.--so-write-timeoutโ setSO_SNDTIMEO.--socket-write-timeoutโ setSO_SNDTIMEO.--socket-sndbufโ setSO_SNDBUF.--socket-rcvbufโ setSO_RCVBUF.--shutdown-socketsโ force callingshutdown()in addition toclose()when sockets are destroyed.
๐ธ limits + reloads ๐ธ
--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 era (she reacts to file changes, periodt) โญ
--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โ when that one file gets modified or touched, it sends a signal, bestie. syntax isfile signal.--fs-reloadโ graceful reload when the specified filesystem object gets modified. so chill.--fs-brutal-reloadโ brutal reload when the specified filesystem object gets modified. no chill, just violence.--fs-signalโ raise a uwsgi signal when the specified filesystem object is modified. syntax:file signal.--check-mountpointโ destroy the instance if a filesystem is no more reachable. useful for reliable Fuse management.--mountpoint-checkโ same energy as--check-mountpoint: destroy the instance if a filesystem is no more reachable. useful for reliable Fuse management.--check-mountโ also destroys the instance if a filesystem is no more reachable. useful for reliable Fuse management.--mount-checkโ another alias: destroy the instance if a filesystem is no more reachable. useful for reliable Fuse management.--propagate-touchโ over-engineering option for systems with flaky signal management. iykyk.--limit-postโ limit the request body. periodt.--no-orphansโ automatically kill workers if master dies. lowkey dangerous for availability, so be careful bestie.--prioโ set processes/threads priority.--cpu-affinityโ set cpu affinity.--post-bufferingโ set size in bytes after which it will buffer to disk instead of memory.--post-buffering-bufsizeโ set buffer size forread()in post buffering mode.--body-read-warningโ set the amount of allowed memory allocation (in megabytes) for request body before starting printing a warning.--upload-progressโ enable creation of.jsonfiles in the specified directory during a file upload.--no-default-appโ do not fallback to default app.--manage-script-nameโ automatically rewriteSCRIPT_NAMEandPATH_INFO.--ignore-script-nameโ ignoreSCRIPT_NAME.--catch-exceptionsโ report exception as http output. discouraged, use only for testing.--reload-on-exceptionโ reload a worker when an exception is raised.--reload-on-exception-typeโ reload a worker when a specific exception type is raised.--reload-on-exception-valueโ reload a worker when a specific exception value is raised.--reload-on-exception-reprโ reload a worker when a specific exception type+value (language-specific) is raised.--exception-handlerโ add an exception handler.--enable-metricsโ enable metrics subsystem. let's get data.--metricโ add a custom metric.--metric-thresholdโ add a metric threshold/alarm.--metric-alarmโ add a metric threshold/alarm. same thing, different name.--alarm-metricโ add a metric threshold/alarm. yup, another alias.--metrics-dirโ export metrics as text files to the specified directory.--metrics-dir-restoreโ restore last value taken from the metrics dir.--metric-dirโ export metrics as text files to the specified directory. yes, same as--metrics-dir.--metric-dir-restoreโ restore last value taken from the metrics dir.--metrics-no-coresโ disable generation of cores-related metrics.--udpโ run the udp server on the specified address.--statsโ enable the stats server on the specified address.--stats-serverโ enable the stats server on the specified address. same vibes.--stats-httpโ prefix stats server json output with http headers.--stats-minifiedโ minify statistics json output.--stats-minโ minify statistics json output. alias alert.--stats-pushโ push the stats json to the specified destination.--stats-pusher-default-freqโ set the default frequency of stats pushers.--stats-pushers-default-freqโ set the default frequency of stats pushers. plural, same thing.--stats-no-coresโ disable generation of cores-related stats.--stats-no-metricsโ do not include metrics in stats output.--multicastโ subscribe to specified multicast group.--multicast-ttlโ set 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โ became a member of a legion.--legion-mcastโ became 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 legion subsystem.--legion-death-on-lord-errorโ declare itself as a dead node for the specified amount of seconds if one of the lord hooks fails.--legion-skew-toleranceโ set the clock skew tolerance of 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 new node joining legion.--legion-node-leftโ action to call node leaving legion.--legion-quorumโ set the quorum of a legion.--legion-scrollโ set the scroll of a legion.--legion-scroll-max-sizeโ set max size of legion scroll buffer.--legion-scroll-list-max-sizeโ set max size of legion scroll list buffer.--subscriptions-sign-checkโ set digest algorithm and certificate directory for secured subscription system.--subscriptions-sign-check-toleranceโ set the maximum tolerance (in seconds) of clock skew for secured subscription system.--subscriptions-sign-skip-uidโ skip signature check for the specified uid when using unix sockets credentials.--subscriptions-credentials-checkโ add a directory to search for subscriptions key credentials.--subscriptions-use-credentialsโ enable management ofSCM_CREDENTIALSin subscriptions UNIX sockets.--subscription-algoโ set load balancing algorithm for the subscription system.--subscription-dotsplitโ try to fallback to the next part (dot based) in subscription key.--subscribe-toโ subscribe to the specified subscription server.--stโ subscribe to the specified subscription server. short and sweet.--subscribeโ subscribe to the specified subscription server.--subscribe2โ subscribe to the specified subscription server using advanced keyval syntax.--subscribe-freqโ send subscription announce at the specified interval.--subscription-toleranceโ set tolerance for subscription servers.--unsubscribe-on-graceful-reloadโ force unsubscribe request even during graceful reload.--start-unsubscribedโ configure subscriptions but do not send them (useful with master fifo).--subscribe-with-modifier1โ force the specifiedmodifier1when 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 maximum certificate verification depth.--sniโ add an SNI-governed SSL context.--sni-dirโ check for cert/key/client_ca file in the specified directory and create a sni/ssl context on demand.--sni-dir-ciphersโ set ssl ciphers for sni-dir option.--ssl-enable3โ enable SSLv3. insecure, bestie, do not.--ssl-enable-sslv3โ enable SSLv3. also insecure.--ssl-enable-tlsv1โ enable TLSv1. insecure, avoid.--ssl-optionโ set a raw ssl option (numeric value).--sni-regexpโ add an SNI-governed SSL context (the key is a regexp).--ssl-tmp-dirโ store ssl-related temp files in the specified directory.--check-intervalโ set the interval (in seconds) of master checks.--forkbomb-delayโ sleep for the specified number of seconds when a forkbomb is detected.--binary-pathโ force 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 specified cores.--max-fdโ set maximum number of file descriptors. requires root privileges.--logtoโ set logfile/udp address.--logto2โ log to specified file or udp address after privileges drop.--log-formatโ set advanced format for request logging.--logformatโ set advanced format for request logging. alias.--logformat-strftimeโ apply strftime to 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 specified socket.--req-loggerโ set/append a request logger.--logger-reqโ set/append a request logger. same.--loggerโ set/append a logger.--logger-listโ list enabled loggers.--loggers-listโ list enabled loggers. plural, same.--threaded-loggerโ offload 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 (do not show) log lines matching the specified regexp.--log-filterโ show only log lines matching the specified regexp.--log-routeโ log to the specified named logger if regexp applied on logline matches.--log-req-routeโ log requests to the specified named logger if regexp applied on logline matches.--use-abortโ callabort()on segfault/fpe. could be useful for generating a core dump.--alarmโ create a new alarm. syntax:<alarm> <plugin:args>.--alarm-cheapโ use the main alarm thread instead of creating dedicated threads for curl-based alarms. no extra threads, we love to see it ๐--alarm-freqโ tune the anti-loop alarm system (default 3 seconds). keep it from going feral โฐ--alarm-fdโ raise the specified alarm when an fd is read for read (by default it reads 1 byte, set 8 for eventfd). eventfd besties rise ๐ซถ--alarm-segfaultโ raise the specified alarm when the segmentation fault handler is executed. segfault moment ๐ญ--segfault-alarmโ raise the specified alarm when the segmentation fault handler is executed. same energy, just a different alias โจ--alarm-backlogโ raise the specified alarm when the socket backlog queue is full. backlog? more like back-<em>log</em> amirite ๐--backlog-alarmโ raise the specified alarm when the socket backlog queue is full. identical twin fr fr ๐--lq-alarmโ raise the specified alarm when the socket backlog queue is full. lq = listen queue, and yes it's the same alarm again ๐--alarm-lqโ raise the specified alarm when the socket backlog queue is full. yet another alias, we stan consistency ๐--alarm-listen-queueโ raise the specified alarm when the socket backlog queue is full. spelling it out for the girlies who need it ๐ธ--listen-queue-alarmโ raise the specified alarm when the socket backlog queue is full. last one of the backlog bunch, promise ๐--log-alarmโ raise the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>. regex goes brrr ๐ฅ--alarm-logโ raise the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>. same thing, just flipped ๐ฆ--not-log-alarmโ skip the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>. the "not" version, so you can be picky ๐--not-alarm-logโ skip the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>. yep, another alias, keep up bestie ๐ญ--alarm-listโ list enabled alarms. show me the receipts ๐--alarms-listโ list enabled alarms. plural version, same tea โ--alarm-msg-sizeโ set the max size of an alarm message (default 8192). don't let your alarms be essay-length ๐--log-masterโ delegate logging to master process. let the master handle it, periodt ๐--log-master-bufsizeโ set the buffer size for the master logger. bigger log messages will be truncated. truncation is real, watch out โ๏ธ--log-master-streamโ create the master logpipe asSOCK_STREAM. streamy stream ๐--log-master-req-streamโ create the master requests logpipe asSOCK_STREAM. requests get the stream treatment too ๐จ--log-reopenโ reopen log after reload. fresh start, reload edition ๐--log-truncateโ truncate log on startup. bye bye old logs ๐--log-maxsizeโ set maximum logfile size. cap it before it gets out of hand ๐--log-backupnameโ set logfile name after rotation. name your backup, glow up โจ--logdateโ prefix logs with date or a strftime string. timestamps? iconic โณ--log-dateโ prefix logs with date or a strftime string. hyphenated twin, same vibe ๐--log-prefixโ prefix logs with a string. add your own flair to every line ๐--log-zeroโ log responses without body. empty body? still log it ๐ซถ--log-slowโ log requests slower than the specified number of milliseconds. slow requests get called out ๐--log-4xxโ log requests with a 4xx response. client errors, we see you ๐--log-5xxโ log requests with a 5xx response. server errors, big yikes ๐ฌ--log-bigโ log requests bigger than the specified size. thicc requests get logged ๐--log-sendfileโ log sendfile requests. sendfile? more like send-<em>logged</em> ๐ค--log-ioerrorโ log requests with io errors. io errors are not the vibe ๐ญ--log-microsโ report response time in microseconds instead of milliseconds. precision queen ๐ฌ--log-x-forwarded-forโ use the ip fromX-Forwarded-Forheader instead ofREMOTE_ADDR. real ip energy, no proxy erasure ๐--master-as-rootโ leave master process running as root. danger? maybe. iconic? absolutely ๐--drop-after-initโ run privileges drop after plugin initialization, superseded bydrop-after-apps. old school, butdrop-after-appsate ๐--drop-after-appsโ run privileges drop after apps loading, superseded bymaster-as-root. better, butmaster-as-rootsaid "hold my crown" ๐--force-cwdโ force the initial working directory to the specified value. no wandering off, stay put ๐--binshโ override/bin/sh(used by exec hooks, it always fallback to/bin/sh). custom shell, but fallback is always/bin/sh๐--chdirโ chdir to specified directory before apps loading. move before you load ๐--chdir2โ chdir to specified directory after apps loading. move after you load, fancy ๐--lazyโ set lazy mode (load apps in workers instead of master). lazy but make it efficient ๐ด--lazy-appsโ load apps in each worker instead of the master. every worker gets its own copy, independent girlies ๐--cheapโ set cheap mode (spawn workers only after the first request). no requests? no workers. frugal queen ๐ธ--cheaperโ set cheaper mode (adaptive process spawning). adaptive, so it scales when needed ๐--cheaper-initialโ set the initial number of processes to spawn in cheaper mode. start small, bestie ๐ฑ--cheaper-algoโ choose to algorithm used for adaptive process spawning. pick your algorithm, main character energy ๐ง--cheaper-stepโ number of additional processes to spawn at each overload. step it up when things get busy ๐--cheaper-overloadโ increase workers after specified overload. overload? time to add more workers ๐ฅ--cheaper-algo-listโ list enabled cheapers algorithms. show me the algorithms ๐--cheaper-algos-listโ list enabled cheapers algorithms. plural, same list ๐--cheaper-listโ list enabled cheapers algorithms. short and sweet, still the list ๐--cheaper-rss-limit-softโ don't spawn new workers if total resident memory usage of all workers is higher than this limit. soft limit, be gentle ๐--cheaper-rss-limit-hardโ if total workers resident memory usage is higher try to stop workers. hard limit, no mercy ๐--idleโ set idle mode (put uWSGI in cheap mode after inactivity). chill mode activated after you stop working ๐--die-on-idleโ shutdown uWSGI when idle. if you're not busy, you're done. dramatic exit ๐ช--mountโ load application under mountpoint. mount it like a pro ๐๏ธ--worker-mountโ load application under mountpoint in the specified worker or after workers spawn. worker-specific mount, fancy ๐--threadsโ run each worker in prethreaded mode with the specified number of threads. threads on threads on threads ๐งต--thread-stacksizeโ set threads stacksize. stack size matters, bestie ๐--threads-stacksizeโ set threads stacksize. plural alias, same stack energy ๐ฅ--thread-stack-sizeโ set threads stacksize. hyphenated version, still the same ๐--threads-stack-sizeโ set threads stacksize. the final form of stacksize aliases ๐--vhostโ enable virtualhosting mode (based onSERVER_NAMEvariable). virtual hosts, based onSERVER_NAME๐--vhost-hostโ enable virtualhosting mode (based onHTTP_HOSTvariable). same butHTTP_HOST, choose your fighter ๐ฅ--routeโ add a route. route it, queen ๐ฃ๏ธ--route-hostโ add a route based onHostheader. host-based routing, we love to see it ๐--route-uriโ add a route based onREQUEST_URI. uri routing, classic ๐--route-qsโ add a route based onQUERY_STRING. query string routing, get specific ๐--route-remote-addrโ add a route based onREMOTE_ADDR. ip-based routing, know your audience ๐--route-user-agentโ add a route based onHTTP_USER_AGENT. user agent routing, detect the vibes ๐ต๏ธ--route-remote-userโ add a route based onREMOTE_USER. remote user routing, personal touch ๐ค--route-refererโ add a route based onHTTP_REFERER. referer routing, where did you come from? ๐--route-labelโ add a routing label (for use withgoto). label it for yourgotojumps ๐ท๏ธ--route-ifโ add a route based on condition. conditional routing, if this then that ๐ง--route-if-notโ add a route based on condition (negate version). the "not" version, spicy ๐ถ๏ธ--route-runโ always run the specified route action. no conditions, just do it โ--final-routeโ add a final route. the last word in routing ๐--final-route-statusโ add a final route for the specified status. status-specific final route, bougie ๐--final-route-hostโ add a final route based onHostheader. final + host, double threat ๐--final-route-uriโ add a final route based onREQUEST_URI. final + uri, precise ๐ฏ--final-route-qsโ add a final route based onQUERY_STRING. final + query string, detailed ๐--final-route-remote-addrโ add a final route based onREMOTE_ADDR. final + ip, knowing ๐--final-route-user-agentโ add a final route based onHTTP_USER_AGENT. final + user agent, vibes ๐ต๏ธ--final-route-remote-userโ add a final route based onREMOTE_USER. final + remote user, personal ๐ค--final-route-refererโ add a final route based onHTTP_REFERER. final + referer, nostalgic ๐--final-route-labelโ add a final routing label (for use withgoto). final label for yourgoto๐ท๏ธ--final-route-ifโ add a final route based on condition. final conditional, if this then done ๐ง--final-route-if-notโ add a final route based on condition (negate version). final "not" condition, rebel ๐ถ๏ธ--final-route-runโ always run the specified final route action. final run, no questions asked โ--error-routeโ add an error route. error routing, handle it gracefully ๐ญ--error-route-statusโ add an error route for the specified status. status-specific error route, bougie ๐--error-route-hostโ add an error route based onHostheader. error + host, where did it go wrong? ๐--error-route-uriโ add an error route based onREQUEST_URI. error + uri, pinpoint the oops ๐ฏ--error-route-qsโ add an error route based onQUERY_STRING. error + query string, detective mode ๐--error-route-remote-addrโ add an error route based onREMOTE_ADDR. error + ip, who did this? ๐--error-route-user-agentโ add an error route based onHTTP_USER_AGENT. error + user agent, blame the browser ๐ต๏ธ--error-route-remote-userโ add an error route based onREMOTE_USER. error + remote user, personal oops ๐ค--error-route-refererโ add an error route based onHTTP_REFERER. error + referer, how did you get here? ๐--error-route-labelโ add an error routing label (for use withgoto). error label for yourgoto๐ท๏ธ--error-route-ifโ add an error route based on condition. error conditional, if this then panic ๐ง--error-route-if-notโ add an error route based on condition (negate version). error "not" condition, plot twist ๐ถ๏ธ--error-route-runโ always run the specified error route action. error run, always ready โ--response-routeโ add a response route. response routing, after the fact ๐ฏ--response-route-statusโ add a response route for the specified status. status-specific response route, bougie ๐--response-route-hostโ add a response route based onHostheader. response + host, where it went ๐--response-route-uriโ add a response route based onREQUEST_URI. response + uri, precise ๐ฏ--response-route-qsโ add a response route based onQUERY_STRING. response + query string, detailed ๐--response-route-remote-addrโ add a response route based onREMOTE_ADDR. response + ip, knowing ๐--response-route-user-agentโ add a response route based onHTTP_USER_AGENT. response + user agent, vibes ๐ต๏ธ--response-route-remote-userโ add a response route based onREMOTE_USER. response + remote user, personal ๐ค--response-route-refererโ add a response route based onHTTP_REFERER. response + referer, nostalgic ๐--response-route-labelโ add a response routing label (for use withgoto). response label for yourgoto๐ท๏ธ--response-route-ifโ add a response route based on condition. response conditional, if this then that ๐ง--response-route-if-notโ add a response route based on condition (negate version). response "not" condition, spicy ๐ถ๏ธ--response-route-runโ always run the specified response route action. response run, always โ--router-listโ list enabled routers. show me the routers ๐--routers-listโ list enabled routers. plural, same list ๐--error-page-403โ add an error page (html) for managed 403 response. 403 page, custom and cute ๐ซ--error-page-404โ add an error page (html) for managed 404 response. 404 page, iconic ๐ณ๏ธ--error-page-500โ add an error page (html) for managed 500 response. 500 page, dramatic ๐ฅ--websockets-ping-freqโ set the frequency (in seconds) of websockets automatic ping packets. ping ping ping ๐--websocket-ping-freqโ set the frequency (in seconds) of websockets automatic ping packets. singular alias, same ping ๐--websockets-pong-toleranceโ set the tolerance (in seconds) of websockets ping/pong subsystem. pong tolerance, be patient ๐--websocket-pong-toleranceโ set the tolerance (in seconds) of websockets ping/pong subsystem. singular twin, same tolerance ๐--websockets-max-sizeโ set the max allowed size of websocket messages (in Kbytes, default 1024). size limit, keep it tight ๐--websocket-max-sizeโ set the max allowed size of websocket messages (in Kbytes, default 1024). singular alias, same max ๐--chunked-input-limitโ set the max size of a chunked input part (default 1MB, in bytes). chunked input limit, byte by byte ๐งฉ--chunked-input-timeoutโ set default timeout for chunked input. timeout for chunked input, don't wait forever โฐ--clockโ set a clock source. tick tock, pick your clock โฐ--clock-listโ list enabled clocks. show me the clocks ๐--clocks-listโ lists all the clocks you've got enabled โจ--add-headerโ auto-slaps HTTP headers onto the response for you ๐--rem-headerโ auto-removes the HTTP header you name from the response ๐งน--del-headerโ same vibe, auto-removes the specified HTTP header from the response--collect-headerโ stashes the response header you name into a request var (syntax:header var) ๐--response-header-collectโ also stashes the specified response header into a request var (syntax:header var)--pull-headerโ stashes the specified response header into a request var and rips it out of the response (syntax:header var) ๐ซณ--check-staticโ checks for static files in the directory you point it at--check-static-docrootโ checks for static files in the requestedDOCUMENT_ROOT--static-checkโ checks for static files in the specified directory (same energy, different name) ๐ซ--static-mapโ maps a mountpoint to a static directory (or a file)--static-map2โ like--static-mapbut it completely appends the requested resource to the docroot--static-skip-extโ skips the extension you name when doing static file 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 path you specify--static-cache-pathsโ drops resolved paths into the uWSGI cache for however many seconds you say โฑ๏ธ--static-cache-paths-nameโ uses the cache you name for 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), twin edition--static-expires-typeโ sets theExpiresheader based on content type--static-expires-type-mtimeโ sets theExpiresheader based on content type and file mtime--static-expiresโ sets theExpiresheader based on a filename regexp--static-expires-mtimeโ sets theExpiresheader based on a filename regexp and file mtime--static-expires-uriโ sets theExpiresheader based on aREQUEST_URIregexp--static-expires-uri-mtimeโ sets theExpiresheader based on aREQUEST_URIregexp and file mtime--static-expires-path-infoโ sets theExpiresheader based on aPATH_INFOregexp--static-expires-path-info-mtimeโ sets theExpiresheader based on aPATH_INFOregexp and file mtime--static-gzipโ if your regexp matches the static file translation, it goes looking for a gzip version ๐๏ธ--static-gzip-allโ checks for a gzip version of every single requested static file--static-gzip-dirโ checks for a gzip version of all requested static files in the dir/prefix you specify--static-gzip-prefixโ checks for a gzip version of all requested static files in the dir/prefix you specify--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 ext/suffix you specify--honour-rangeโ turns on support for the HTTPRangeheader ๐--offload-threadsโ sets how many offload threads to spawn (per-worker, default0)--offload-threadโ sets how many offload threads to spawn (per-worker, default0), singular bestie--file-serve-modeโ sets the static file serving mode--fileserve-modeโ sets the static file serving mode (yep, same thing)--disable-sendfileโ disablessendfile()and relies on boringread()/write()instead ๐--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 (could be required for spawning processes in requests)--close-on-exec2โ sets close-on-exec on server sockets (could be required for spawning processes in requests)--modeโ set uWSGI custom mode--envโ set environment variable ๐ฑ--envdirโ loads a daemontools compatible envdir--early-envdirโ loads a daemontools compatible envdir ASAP โก--unenvโ unsets an environment variable--vacuumโ tries to remove all of the generated file/sockets ๐งฝ--file-writeโ writes the content you specify to the file you specify (syntax:file=value) before privileges drop--cgroupโ puts the processes in the cgroup you specify--cgroup-optโ sets a value in the cgroup option you specify--cgroup-dir-modeโ sets permission for the cgroup directory (default is700) ๐--namespaceโ runs in a new namespace under the rootfs you specify--namespace-keep-mountโ keeps the mountpoint you specify in your namespace--nsโ runs in a new namespace under the specified rootfs (short king edition)--namespace-netโ adds a network namespace ๐--ns-netโ adds a network namespace--enable-proxy-protocolโ enablesPROXY1protocol support (only for http parsers) ๐ฐ๏ธ--reuse-portโ enables theREUSE_PORTflag on the socket (BSD only)--tcp-fast-openโ enables theTCP_FASTOPENflag on TCP sockets with the qlen value you give it ๐--tcp-fastopenโ enables theTCP_FASTOPENflag on TCP sockets with the specified qlen value--tcp-fast-open-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported--tcp-fastopen-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported--zergโ attaches to a zerg server ๐พ--zerg-fallbackโ falls back to normal sockets if the zerg server isn't available--zerg-serverโ enables the zerg server on the UNIX socket you specify--cronโ adds a cron task โฐ--cron2โ adds a cron task (key=valsyntax)--unique-cronโ adds a unique cron task--cron-harakiriโ sets the max time (in seconds) we wait for a cron command to finish ๐ก๏ธ--legion-cronโ adds a cron task that only runs when the instance is a lord of the legion you specify ๐--cron-legionโ adds a cron task that only runs when the instance is a lord of the specified legion--unique-legion-cronโ adds a unique cron task that only runs when the instance is a lord of the specified legion--unique-cron-legionโ adds a unique cron task that only runs when the instance is a lord of the specified legion--loopโ selects the uWSGI loop engine ๐--loop-listโ lists all the enabled loop engines--loops-listโ lists the enabled loop engines (plural moment)--worker-execโ runs the command you specify as a worker--worker-exec2โ runs the command you specify as a worker (after thepost_forkhook) ๐ช--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 (the command has to not go in background), and when the daemon dies, the master dies too ๐--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) ๐--legion-attach-daemonโ same as--attach-daemonbut the daemon only runs on a legion lord node ๐--legion-smart-attach-daemonโ same as--smart-attach-daemonbut the daemon only runs on a legion lord node--legion-smart-attach-daemon2โ same as--smart-attach-daemon2but the daemon only runs on a legion lord node--daemons-honour-stdinโ does not change the stdin of external daemons to/dev/null๐ซถ--attach-daemon2โ theattach-daemonkeyval variant (supports smart modes too)--pluginsโ loads uWSGI plugins ๐งฉ--pluginโ loads uWSGI plugins--need-pluginsโ loads uWSGI plugins (exits on error)--need-pluginโ loads uWSGI plugins (exit on error, singular bestie)--plugins-dirโ adds a directory to the uWSGI plugin search path ๐--plugin-dirโ adds a directory to the uWSGI plugin search path--plugins-listโ lists all the enabled plugins ๐--plugin-listโ lists the enabled plugins--autoloadโ tries to automatically load plugins when unknown options are found โจ--dlopenโ blindly loads a shared library ๐--allowed-modifiersโ 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 ๐--show-configโ shows the current config reformatted as ini ๐--binary-append-dataโ returns the content of a resource to stdout for appending to a uwsgi binary (fordata://usage)--printโ simple print ๐จ๏ธ--iprintโ simple print (immediate version) โก--exitโ forceexit()of the instance ๐ช--cflagsโ reports uWSGICFLAGS(useful for building external plugins) ๐ ๏ธ--dot-hโ dumps theuwsgi.hused for building the core (useful for building external plugins)--config-pyโ dumps theuwsgiconfig.pyused for building the core (useful for building external plugins)--build-pluginโ builds a uWSGI plugin for the current binary ๐จ--versionโ prints the uWSGI version ๐ท๏ธ--response-headers-limitโ sets the response header maximum size (default:64k) ๐
and that's the whole option list bestie, you made it to the end ๐ This one's from uwsgi_rados version 2.0.31-2, dated February 2026, and the page is UWSGI_RADOS(1) โ go forth and configure, icon, you've got this ๐โจ๐ฆ
๐ฆ where this page comes from
- ubuntu resolute: uwsgi-plugin-rados 2.0.31+2+0.0.3build2 ยท GPL-3.0-or-later
- ubuntu stonking: uwsgi-plugin-rados 2.0.31+2+0.0.3build2 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms