UWSGI_XSLT(1)
โจ NAME โจ
uwsgi_xslt โ fast (pure C), self-healing, developer-friendly WSGI server. And yes bestie, this is the man page for uwsgi_xslt in section 1 (User Commands) ๐
๐ฆ SYNOPSIS ๐ฆ
uwsgi-core [options...]
๐ DESCRIPTION ๐
Okay so listen, this page is a whole buffet of options. We're gonna go through every single one, no skips, no cap. Let's get into it ๐
-s,--socketโ binds to the UNIX/TCP socket you specify, using the default protocol ๐-s,--uwsgi-socketโ binds to the UNIX/TCP socket you specify, using the uwsgi protocol ๐ฆ--suwsgi-socketโ binds to the UNIX/TCP socket you specify, using the uwsgi protocol over SSL ๐--ssl-socketโ binds to the UNIX/TCP socket you specify, using the uwsgi protocol over SSL ๐--http-socketโ binds to the UNIX/TCP socket you specify, using HTTP protocol ๐--http-socket-modifier1โ forces the specified modifier1 when using HTTP protocol 1๏ธโฃ--http-socket-modifier2โ forces the specified modifier2 when using HTTP protocol 2๏ธโฃ--http11-socketโ binds to the UNIX/TCP socket you specify, using HTTP 1.1 (Keep-Alive) protocol ๐--https-socketโ binds to the UNIX/TCP socket you specify, using HTTPS protocol ๐--https-socket-modifier1โ forces the specified modifier1 when using HTTPS protocol 1๏ธโฃ--https-socket-modifier2โ forces the specified modifier2 when using HTTPS protocol 2๏ธโฃ--fastcgi-socketโ binds to the UNIX/TCP socket you specify, using FastCGI protocol โก--fastcgi-nph-socketโ binds to the UNIX/TCP socket you specify, using FastCGI protocol (nph mode) โก--fastcgi-modifier1โ forces the specified modifier1 when using FastCGI protocol 1๏ธโฃ--fastcgi-modifier2โ forces the specified modifier2 when using FastCGI protocol 2๏ธโฃ--scgi-socketโ binds to the UNIX/TCP socket you specify, using SCGI protocol ๐--scgi-nph-socketโ binds to the UNIX/TCP socket you specify, using SCGI protocol (nph mode) ๐--scgi-modifier1โ forces the specified modifier1 when using SCGI protocol 1๏ธโฃ--scgi-modifier2โ forces the specified modifier2 when using SCGI protocol 2๏ธโฃ--raw-socketโ binds to the UNIX/TCP socket you specify, using RAW protocol ๐ฅฉ--raw-modifier1โ forces the specified modifier1 when using RAW protocol 1๏ธโฃ--raw-modifier2โ forces the specified modifier2 when using RAW protocol 2๏ธโฃ--puwsgi-socketโ binds to the UNIX/TCP socket you specify, using persistent uwsgi protocol (puwsgi) ๐--protocolโ forces the specified protocol for default sockets ๐ก--socket-protocolโ forces the specified protocol for default sockets ๐ก--shared-socketโ creates a shared socket for advanced jailing or ipc ๐--undeferred-shared-socketโ creates a shared socket for advanced jailing or ipc (undeferred mode) ๐-p,--processesโ spawns the specified number of workers/processes ๐ฏ-p,--workersโ spawns the specified number of workers/processes ๐ฏ--thunder-lockโ serializes accept() usage (if possible) โก-t,--harakiriโ sets the harakiri timeout โฐ--harakiri-verboseโ enables verbose mode for harakiri ๐ฃ๏ธ--harakiri-graceful-timeoutโ the interval between a graceful harakiri attempt and a sigkill โณ--harakiri-graceful-signalโ uses this signal instead of sigterm for graceful harakiri attempts ๐ฆ--harakiri-queue-thresholdโ only triggers harakiri if the queue is greater than this threshold ๐--harakiri-no-arhโ does not enable harakiri during after-request-hook ๐ซ--no-harakiri-arhโ does not enable harakiri during after-request-hook ๐ซ--no-harakiri-after-req-hookโ does not enable harakiri during after-request-hook ๐ซ--backtrace-depthโ sets the backtrace depth ๐--mule-harakiriโ sets the harakiri timeout for mule tasks ๐ด-x,--xmlconfigโ loads config from an xml file ๐-x,--xmlโ loads config from an xml file ๐--configโ loads configuration using the pluggable system ๐--fallback-configโ re-execs uwsgi with the specified config when the exit code is 1 ๐--strictโ enables strict mode (placeholder cannot be used) ๐ซ--skip-zeroโ skips check of file descriptor 0 0๏ธโฃ--skip-atexitโ skips atexit hooks (ignored by the master) ๐ช--skip-atexit-teardownโ skips atexit teardown (ignored by the master) ๐งน-S,--setโ sets a placeholder or an option ๐ฏ--set-placeholderโ sets a placeholder ๐--set-phโ sets a placeholder ๐--getโ prints the specified option value and exits ๐ค--declare-optionโ declares a new uWSGI custom option ๐--declare-option2โ declares a new uWSGI custom option (non-immediate) ๐--resolveโ places the result of a dns query in the specified placeholder, syntax: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 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 โซ--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 a 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) 1๏ธโฃ--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 ๐ง--emperor-pidfileโ drops the Emperor's pid into the file you point at, bestie. ๐--emperor-tyrantโ flips the Emperor straight into Tyrant mode. it's giving supreme overlord energy ๐--emperor-tyrant-nofollowโ in Tyrant mode, when it's checking uid/gid, it will not follow symlinks. no sneaky shortcuts, periodt.--emperor-statsโ spins up the Emperor stats server ๐--emperor-stats-serverโ same thing, also runs the Emperor stats server (yes, it's a twin, we love that for it)--early-emperorโ spawns the emperor as early as possible, because why wait โจ--emperor-broodlordโ runs the emperor in BroodLord mode ๐ฆ (scary name, iconic feature)--emperor-throttleโ sets the throttling level in milliseconds for vassals that are acting up (default1000)--emperor-max-throttleโ the ceiling for that throttling, in milliseconds, for bad-behaving vassals (default3 minutes)--emperor-magic-execโ if a vassal's config file has the executable bit set, it gets prefixed withexec://. magic โจ--emperor-on-demand-extensionโ looks for a text file named (vassal name + your extension) that holds the on-demand socket name ๐--emperor-on-demand-extโ literally the same thing, shorter name for the same lookup--emperor-on-demand-directoryโ turns on on-demand mode and binds to the unix socket inside the directory you specify, named like the vassal +.socket--emperor-on-demand-dirโ the short version of that exact same behaviour ๐--emperor-on-demand-execโ uses the output of the command you give as the on-demand socket name (the vassal name is handed over as the only argument)--emperor-extra-extensionโ lets the Emperor accept the extension you specify; vassals get called with--config--emperor-extra-extโ same deal, abbreviated ๐--emperor-no-blacklistโ kills the Emperor blacklisting subsystem entirely, no cap--emperor-use-cloneโ usesclone()instead offork()and passes along theunshare()flags you specify--emperor-graceful-shutdownโ vassals get a graceful shutdown during ragnarok ๐ (yes, that's what it's called)--emperor-capโ sets the vassals capability--vassals-capโ sets the vassals capability (same thing, different spelling, we stan variety)--vassal-capโ yep, sets the vassals capability. three names, one job ๐ญ--imperial-monitor-listโ lists the imperial monitors that are enabled ๐--imperial-monitors-listโ the pluralized twin of that, same listing--vassals-inheritโ adds config templates to the vassals config, via--inherit๐--vassals-includeโ includes config templates into the vassals config, using--includeinstead of--inherit--vassals-inherit-beforeโ adds config templates to the vassals config using--inherit, parsed before the vassal file โฎ๏ธ--vassals-include-beforeโ includes config templates into the vassals config using--includeinstead of--inherit, parsed before the vassal file--vassals-start-hookโ runs your command before each vassal starts ๐--vassals-stop-hookโ runs your command after a vassal's death ๐--vassal-sosโ when a vassal is overloaded, it asks the emperor for reinforcement ๐--vassal-sos-backlogโ sends that SOS if the backlog queue has more items than the value you specify--vassals-setโ automatically sets the option you give (via--set) for every single vassal--vassal-setโ same energy, same behaviour, one fewer letter--heartbeatโ announces healthiness to the emperor ๐--reload-mercyโ the max time in seconds we're willing to wait for workers and other processes to die during reload/shutdown--worker-reload-mercyโ how long a single worker gets to reload/shutdown, in seconds (default is60)--mule-reload-mercyโ how long a mule gets to reload/shutdown, in seconds (default is60) ๐ด--exit-on-reloadโ forces an exit even if a reload was requested. dramatic, but okay--die-on-termโ onSIGTERMit exits instead of doing a brutal reload--force-gatewayโ forces the spawn of the first registered gateway, without a master-h,--helpโ shows this help ๐ซถ-h,--usageโ also shows this help (same flag, same help, love that for us)--print-symโ prints the content of the binary symbol you specify--print-symbolโ prints the content of the specified binary symbol (again, two names, one vibe)-r,--reaperโ callswaitpid(-1,...)after every request so zombies get cleaned up ๐งโโ๏ธโจ-R,--max-requestsโ reloads workers after the specified amount of managed requests--max-requests-deltaโ adds(worker_id * delta)to themax_requestsvalue of each worker--min-worker-lifetimeโ the number of seconds a worker has to run before it's allowed to be reloaded (default is10)--max-worker-lifetimeโ reloads workers after the number of seconds you specify (default is disabled)--max-worker-lifetime-deltaโ adds(worker_id * delta)seconds to themax_worker_lifetimevalue of each worker-z,--socket-timeoutโ sets the internal sockets timeout โฑ๏ธ--no-fd-passingโ disables file descriptor passing--locksโ creates the number of shared locks you specify ๐--lock-engineโ sets the lock engine--ftokโ sets the ipcsem key viaftok()so you avoid duplicates--persistent-ipcsemโ does not remove ipcsem's on shutdown-A,--sharedareaโ creates a raw shared memory area of the number of pages you specify (note: it supports keyval too)--safe-fdโ don't close the file descriptor you specify, keep it safe ๐ก๏ธ--fd-safeโ same thing, do not close the specified file descriptor--cacheโ creates a shared cache containing the given elements--cache-blocksizeโ sets the cache blocksize--cache-storeโ enables persistent cache to disk ๐พ--cache-store-syncโ sets how often the persistent cache syncs--cache-no-expireโ disables the auto sweep of expired items ๐งน--cache-expire-freqโ sets how often the cache sweeper scans (default3 seconds)--cache-report-freed-itemsโ constantly reports cache items freed by the sweeper. btw, use only for debug ๐--cache-udp-serverโ binds the cache udp server (used only for set/update/delete) to the socket you specify--cache-udp-nodeโ sends cache update/deletion over to the cache udp server you specify ๐ก--cache-syncโ copies the entire content of another uWSGI cache server when this server starts up--cache-use-last-modifiedโ updates thelast_modified_attimestamp on every cache item modification (default is disabled)--add-cache-itemโ adds an item into the cache--load-file-in-cacheโ loads a static file into the cache ๐--load-file-in-cache-gzipโ loads a static file into the cache, gzip-compressed--cache2โ creates a new generation shared cache (keyval syntax) โจ--queueโ enables the shared queue--queue-blocksizeโ sets the queue blocksize--queue-storeโ enables persistent queue to disk--queue-store-syncโ sets how often the persistent queue syncs-Q,--spoolerโ runs a spooler on the directory you specify--spooler-externalโ maps spooler requests to a spooler directory that's managed by an external instance--spooler-orderedโ tries to order the execution of spooler tasks ๐ข--spooler-chdirโchdir()s into the directory you specify before each spooler task--spooler-processesโ sets the number of processes for spoolers--spooler-quietโ no being verbose about spooler tasks, shhh ๐คซ--spooler-max-tasksโ the maximum number of tasks to run before recycling a spooler--spooler-harakiriโ sets the harakiri timeout for spooler tasks--spooler-frequencyโ sets the spooler frequency--spooler-freqโ sets the spooler frequency (short king version)--muleโ adds a mule ๐ด--mulesโ adds the number of mules you specify--farmโ adds a mule farm ๐ (yes, really)--mule-msg-sizeโ sets the mule message buffer size--signalโ sends a uwsgi signal to a server--signal-bufsizeโ sets the buffer size for the signal queue--signals-bufsizeโ sets the buffer size for the signal queue (same, with an extras)--signal-timerโ adds a timer (syntax:<signal> <seconds>) โฒ๏ธ--timerโ adds a timer (syntax:<signal> <seconds>)--signal-rbtimerโ adds a redblack timer (syntax:<signal> <seconds>)--rbtimerโ adds a redblack timer (syntax:<signal> <seconds>)--rpc-maxโ the maximum number of rpc slots (default:64)-L,--disable-loggingโ disables request logging. quiet luxury ๐--flockโ locks the file you specify before starting, and exits if it's already locked--flock-waitโ locks the file you specify before starting, and waits if it's already locked โณ--flock2โ locks the file you specify after logging/daemon setup, exiting if it's locked--flock-wait2โ locks the file you specify after logging/daemon setup, waiting if it's locked--pidfileโ creates a pidfile (before privileges drop)--pidfile2โ creates a pidfile (after privileges drop)--safe-pidfileโ creates a safe pidfile (before privileges drop) ๐ก๏ธ--safe-pidfile2โ creates a safe pidfile (after privileges drop)--chrootโchroot()s to the directory you specify--pivot-rootโpivot_root()s to the directories you specify (new_rootandput_oldmust be separated with a space)--pivot_rootโpivot_root()s to the specified directories (new_rootandput_oldseparated with a space) โ underscore edition--uidโsetuids to the user/uid you specify--gidโsetgids to the group/gid you specify--add-gidโ adds the group id you specify to the process credentials--immediate-uidโsetuids to the specified user/uid IMMEDIATELY ๐โโ๏ธ--immediate-gidโsetgids to the specified group/gid IMMEDIATELY--no-initgroupsโ disables the additional groups that would be set viainitgroups()--capโ sets the process capability--unshareโunshare()s part of the processes and puts them in a new namespace ๐--unshare2โunshare()s part of the processes and puts them in a new namespace, after the rootfs change--setns-socketโ exposes a unix socket that returns namespace fds from/proc/self/ns--setns-socket-skipโ skips the entry you specify when sending setns file descriptors--setns-skipโ skips the specified entry when sending setns file descriptors--setnsโ joins a namespace that was created by an external uWSGI instance--setns-preopenโ opens/proc/self/nsas soon as possible and caches the fds โก--jailedโ flips the switch that says this instance is jailed, which forces thepost_jailhooks to actually run ๐--reforkโ does afork()again after privileges get dropped. lowkey made for jailing setups ๐ง--re-forkโ same exact energy as--refork:fork()again after privileges drop. jailing systems love this one ๐ซถ--refork-as-rootโfork()again before privileges drop. again, for the jailing girlies ๐--re-fork-as-rootโ literally the same as--refork-as-root:fork()again before privileges drop. jailing systems, this is for y'all ๐--refork-post-jailโfork()again after jailing. bestie it's giving jailing-system support and I'm obsessed โจ--re-fork-post-jailโ the twin of--refork-post-jail:fork()again after jailing. still for jailing systems ๐ธ--hook-asapโ run the hook you gave it as soon as possible, no cap โก--hook-pre-jailโ run that hook before jailing ๐--hook-post-jailโ run that hook after jailing ๐--hook-in-jailโ run that hook inside the jail, after initialization ๐ฆ--hook-as-rootโ run that hook before privileges drop ๐--hook-as-userโ run that hook after privileges drop ๐โโ๏ธ--hook-as-user-atexitโ run that hook before the app exits and before reload ๐--hook-pre-appโ run that hook before app loading ๐ฆ--hook-post-appโ run that hook after app loading โ--hook-post-forkโ run that hook after every single fork ๐ด--hook-acceptingโ run that hook after each worker enters the accepting phase ๐ฏ--hook-accepting1โ run that hook after the first worker enters the accepting phase ๐ฅ--hook-accepting-onceโ run that hook after each worker enters the accepting phase, but only once per-instance ๐--hook-accepting1-onceโ run that hook after the first worker enters the accepting phase, once per instance ๐ซ--hook-master-startโ run that hook when the Master starts ๐โจ--hook-touchโ run that hook when the file you name gets touched (syntax:<file> <action>) ๐ซฐ--hook-emperor-startโ run that hook when the Emperor starts ๐ธ--hook-emperor-stopโ run that hook when the Emperor sends a stop message โ--hook-emperor-reloadโ run that hook when the Emperor sends a reload message ๐--hook-emperor-lostโ run that hook when the Emperor connection is lost ๐ญ--hook-as-vassalโ run that hook beforeexec()ing the vassal ๐--hook-as-emperorโ run that hook in the emperor, after the vassal has been started ๐ธ๐ซถ--hook-as-muleโ run that hook in each mule ๐ด--hook-as-gatewayโ run that hook in each gateway ๐ช--after-request-hookโ run the function/symbol you name after every request ๐--after-request-callโ same thing, different flag: run the function/symbol you name after every request ๐--exec-asapโ run that command as soon as possible โก--exec-pre-jailโ run that command before jailing ๐--exec-post-jailโ run that command after jailing ๐--exec-in-jailโ run that command in jail after initialization ๐ฆ--exec-as-rootโ run that command before privileges drop ๐--exec-as-userโ run that command after privileges drop ๐โโ๏ธ--exec-as-user-atexitโ run that command before app exit and reload ๐--exec-pre-appโ run that command before app loading ๐ฆ--exec-post-appโ run that command after app loading โ--exec-as-vassalโ run that command beforeexec()ing the vassal ๐--exec-as-emperorโ run that command in the emperor, after the vassal has been started ๐ธ--mount-asapโ mount the filesystem as soon as possible ๐๏ธ--mount-pre-jailโ mount the filesystem before jailing ๐--mount-post-jailโ mount the filesystem after jailing ๐--mount-in-jailโ mount the filesystem in jail after initialization ๐ฆ--mount-as-rootโ mount the filesystem before privileges drop ๐--mount-as-vassalโ mount the filesystem beforeexec()ing the vassal ๐--mount-as-emperorโ mount the filesystem in the emperor, after the vassal has been started ๐ธ--umount-asapโ unmount the filesystem as soon as possible ๐--umount-pre-jailโ unmount the filesystem before jailing ๐--umount-post-jailโ unmount the filesystem after jailing ๐--umount-in-jailโ unmount the filesystem in jail after initialization ๐ฆ--umount-as-rootโ unmount the filesystem before privileges drop ๐--umount-as-vassalโ unmount the filesystem beforeexec()ing the vassal ๐--umount-as-emperorโ unmount the filesystem in the emperor, after the vassal has been started ๐ธ
okay now we're in the wait-for-things era and honestly? she's patient, she's gorgeous, she's organized ๐
--wait-for-interfaceโ wait for the network interface you name to come up before running root hooks ๐--wait-for-interface-timeoutโ set the timeout forwait-for-interfaceโฐ--wait-interfaceโ wait for the specified network interface to come up before running root hooks ๐ (yes, same deal, shorter name bestie)--wait-interface-timeoutโ set the timeout forwait-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 forwait-for-interfaceโฐ--wait-ifaceโ wait for the specified network interface to come up before running root hooks ๐--wait-iface-timeoutโ set the timeout forwait-for-interfaceโฐ--wait-for-fsโ wait for the filesystem item you name to appear before running root hooks ๐๏ธ--wait-for-fileโ wait for the file you name to appear before running root hooks ๐--wait-for-dirโ wait for the directory you name to appear before running root hooks ๐--wait-for-mountpointโ wait for the mountpoint you name to appear before running root hooks ๐๏ธ--wait-for-fs-timeoutโ set the timeout forwait-for-fs/file/dirโฐ--wait-for-socketโ wait for the socket you name to be ready before loading apps ๐--wait-for-socket-timeoutโ set the timeout forwait-for-socketโฐ
and the call family, because sometimes you just need to call a function at a very specific moment in your life ๐
--call-asapโ call the function you name 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 specifiedfunction()beforeexec()ing the vassal ๐--call-as-vassal1โ call the specifiedfunction(char *)beforeexec()ing the vassal ๐--call-as-vassal3โ call the specifiedfunction(char *, uid_t, gid_t)beforeexec()ing the vassal ๐--call-as-emperorโ call the specifiedfunction()in the emperor, after the vassal has been started ๐ธ--call-as-emperor1โ call the specifiedfunction(char *)in the emperor, after the vassal has been started ๐ธ--call-as-emperor2โ call the specifiedfunction(char *, pid_t)in the emperor, after the vassal has been started ๐ธ--call-as-emperor4โ call the specifiedfunction(char *, pid_t, uid_t, gid_t)in the emperor, after the vassal has been started ๐ธ
--iniโ load config from an ini file ๐-y,--yamlโ load config from a yaml file ๐ฑ-y,--ymlโ load config from a yaml file ๐ฑ (same vibe, shorter spelling)-j,--jsonโ load config from a json file ๐งพ-j,--jsโ load config from a json file ๐งพ (again, same thing)--weightโ the weight of the instance, used by clustering/lb/subscriptions โ๏ธ--auto-weightโ set the weight of the instance automatically, used by clustering/lb/subscriptions ๐ค--no-serverโ force no-server mode ๐ซ--command-modeโ force command mode โจ๏ธ--no-defer-acceptโ disable deferred-accept on sockets ๐ซ๐--tcp-nodelayโ enable TCPNODELAYon each request ๐--so-keepaliveโ enable TCPKEEPALIVEs ๐--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 ๐๐ฅ
--limit-asโ limit the processes' address space/vsz ๐--limit-nprocโ limit how many processes can be spawned ๐งฎ--reload-on-asโ reload if the address space goes higher than the megabytes you specify ๐--reload-on-rssโ reload if rss memory goes higher than the megabytes you specify ๐--evil-reload-on-asโ force the master to reload a worker if its address space goes higher than the megabytes you specify ๐--evil-reload-on-rssโ force the master to reload a worker if its rss memory goes higher than the megabytes you specify ๐--mem-collector-freqโ set the memory collector frequency when evil reloads are in place ๐งน--reload-on-fdโ reload if the file descriptor you name is ready ๐--brutal-reload-on-fdโ brutal reload if the specified file descriptor is ready ๐--ksmโ enable LinuxKSM๐ง--pcre-jitโ enable pcre jit (if it's available) ๐ง--never-swapโ lock all memory pages, avoiding swapping ๐--touch-reloadโ reload uWSGI if the file you name is modified/touched ๐ซฐ--touch-workers-reloadโ trigger a reload of (only) workers if the file you name is modified/touched ๐ท--touch-mules-reloadโ reload mules if the file you name is modified/touched ๐ด--touch-spoolers-reloadโ reload spoolers if the file you name is modified/touched ๐--touch-chain-reloadโ trigger a chain reload if the file you name is modified/touched โ๏ธ--touch-logrotateโ trigger logrotation if the file you name is modified/touched ๐ชต--touch-logreopenโ trigger log reopen if the file you name is modified/touched ๐--touch-execโ run the command when the file you name is modified/touched (syntax:file command) ๐ซฐโก--touch-signalโ fire off a signal the moment the file you named gets modified or touched (syntax isfile signal) โจ--fs-reloadโ do a whole graceful reload when the filesystem object you picked gets modified--fs-brutal-reloadโ same vibe but 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,--mountpoint-check,--check-mount,--mount-checkโ literally destroy the instance if a filesystem is no longer reachable. all four names do the same thing bestie. super useful for reliable Fuse management ๐ซถ--propagate-touchโ the over-engineering option for systems with flaky signal management. yes it's extra, no we're not judging ๐--limit-postโ cap the request body size--no-orphansโ auto-kill workers if the master dies. heads up: can be dangerous for availability so don't just turn it on and forget it ๐ญ--prioโ set processes/threads priority--cpu-affinityโ set cpu affinity--post-bufferingโ set the size in bytes after which stuff buffers to disk instead of memory--post-buffering-bufsizeโ set theread()buffer size in post buffering mode--body-read-warningโ sets how much memory (in megabytes) a request body is allowed to allocate before it starts printing a warning at you ๐--upload-progressโ enable creation of.jsonfiles in the directory you specify during a file upload--no-default-appโ no falling back to the default app, we're exclusive here ๐--manage-script-nameโ automatically rewriteSCRIPT_NAMEandPATH_INFO--ignore-script-nameโ just ignoreSCRIPT_NAMEentirely--catch-exceptionsโ report the exception as http output. discouraged, use only for testing โ pls don't ship this fr fr--reload-on-exceptionโ reload a worker when an exception gets raised--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 is raised (language-specific โจ)--exception-handlerโ add an exception handler
--enable-metricsโ turn on the metrics subsystem ๐--metricโ add a custom metric--metric-threshold,--metric-alarm,--alarm-metricโ all three add a metric threshold/alarm. same thing, three names, slay ๐ธ--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 it's basically a twin)--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 address you give it--stats,--stats-serverโ enable the stats server on the specified address--stats-httpโ prefix stats server json output with http headers--stats-minified,--stats-minโ minify the statistics json output--stats-pushโ push the stats json to the destination you specify--stats-pusher-default-freq,--stats-pushers-default-freqโ set the default frequency of stats pushers--stats-no-coresโ disable generation of cores-related stats--stats-no-metricsโ don't include metrics in the stats output--multicastโ subscribe to the multicast group you specify--multicast-ttlโ set multicast ttl--multicast-loopโ set multicast loop (default is1)--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 the legion subsystem--legion-death-on-lord-errorโ declare itself as a dead node for the number of seconds you specify if one of the lord hooks fails ๐--legion-skew-toleranceโ set the clock skew tolerance of the legion subsystem (default is60seconds)--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 on a node leaving the 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 the legion scroll buffer--legion-scroll-list-max-sizeโ set 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 ofSCM_CREDENTIALSin subscriptions UNIX sockets--subscription-algoโ set the load balancing algorithm for the subscription system--subscription-dotsplitโ try to fall back to the next part (dot based) in the subscription key--subscribe-to,--st,--subscribeโ subscribe to the subscription server you specify โจ--subscribe2โ subscribe to the specified subscription server using advanced keyval syntax--subscribe-freqโ send the subscription announce at the interval you specify--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 don't actually send them (super 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 the maximum certificate verification depth--sniโ add an SNI-governed SSL context--sni-dirโ check forcert/key/client_cafiles in the directory you specify and create a sni/ssl context on demand ๐ฆ--sni-dir-ciphersโ set ssl ciphers for thesni-diroption--ssl-enable3,--ssl-enable-sslv3โ enable SSLv3. (insecure) bestie why ๐ญ--ssl-enable-tlsv1โ enable TLSv1. (insecure) also why ๐ญ--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 directory you specify--check-intervalโ set the interval (in seconds) of master checks--forkbomb-delayโ sleep for the number of seconds you specify when a forkbomb is detected ๐--binary-pathโ force the binary path--privileged-binary-patchโ patch the uwsgi binary with a new command (before the privileges drop)--unprivileged-binary-patchโ patch the uwsgi binary with a new command (after the 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 the logfile/udp address--logto2โ log to the file or udp address you specify after the privileges drop--log-format,--logformatโ set the advanced format for request logging--logformat-strftime,--log-format-strftimeโ applystrftimeto the 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,--logger-reqโ set/append a request logger--loggerโ set/append a logger--logger-list,--loggers-listโ list enabled loggers--threaded-loggerโ offload log writing to a thread--log-encoderโ add an item to the log encoder chain--log-req-encoderโ add an item to the log req encoder chain--log-drainโ drain (a.k.a. do not show) log lines matching the regexp you give it ๐--log-filterโ show only the log lines matching the regexp you give it--log-routeโ log to the named logger you specify if the regexp applied on the logline matches--log-req-routeโ log requests to the named logger you specify if the regexp applied on the 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>
okay bestie we're back in the option mines โ๏ธโจ grab your emotional support snack because this stretch is long, but it's also where all the good routing nonsense lives, so buckle up ๐
--alarm-cheapโ use the main alarm thread for curl-based alarms instead of spawning dedicated threads for each one ๐งต less thread-chaos, more chill.--alarm-freqโ tune how often the anti-loop alarm system fires (default3seconds) ๐--alarm-fdโ raise the specified alarm when an fd is read. by default it reads1byte ๐ญ so set it to8if you're working with eventfd.--alarm-segfaultโ raise the specified alarm when the segmentation fault handler runs ๐--segfault-alarmโ raise the specified alarm when the segmentation fault handler runs ๐ (yes bestie, same energy, it's the twin).--alarm-backlogโ raise the specified alarm when the socket backlog queue is full ๐ค--backlog-alarmโ raise the specified alarm when the socket backlog queue is full ๐ค--lq-alarmโ raise the specified alarm when the socket backlog queue is full ๐ค--alarm-lqโ raise the specified alarm when the socket backlog queue is full ๐ค--alarm-listen-queueโ raise the specified alarm when the socket backlog queue is full ๐ค--listen-queue-alarmโ raise the specified alarm when the socket backlog queue is full ๐ค (six names, one job. slay ๐ )--log-alarmโ raise the specified alarm when a log line matches the specified regexp. syntax:<alarm>[,alarm...] <regexp>๐จ--alarm-logโ raise the specified alarm when a log line matches the specified regexp. syntax:<alarm>[,alarm...] <regexp>๐จ--not-log-alarmโ skip the specified alarm when a log line matches the specified regexp. syntax:<alarm>[,alarm...] <regexp>๐--not-alarm-logโ skip the specified alarm when a log line matches the specified regexp. syntax:<alarm>[,alarm...] <regexp>๐--alarm-listโ list enabled alarms ๐--alarms-listโ list enabled alarms ๐--alarm-msg-sizeโ set the max size of an alarm message (default8192) ๐จ
--log-masterโ delegate logging to the master process ๐ log duties: outsourced.--log-master-bufsizeโ set the buffer size for the master logger. bigger log messages will get truncated โ๏ธ (rip to long lines).--log-master-streamโ create the master logpipe asSOCK_STREAM๐ฐ--log-master-req-streamโ create the master requests logpipe asSOCK_STREAM๐ฐ--log-reopenโ reopen the log after a reload ๐--log-truncateโ truncate the log on startup ๐๏ธ fresh page energy.--log-maxsizeโ set maximum logfile size ๐--log-backupnameโ set the logfile name used after rotation ๐๏ธ--logdateโ prefix logs with a date or astrftimestring ๐--log-dateโ prefix logs with a date or astrftimestring ๐--log-prefixโ prefix logs with a string ๐ท๏ธ--log-zeroโ log responses without a body ๐ซฅ--log-slowโ log requests slower than the specified number of milliseconds ๐ข--log-4xxโ log requests with a4xxresponse ๐ซ--log-5xxโ log requests with a5xxresponse ๐ฅ--log-bigโ log requests bigger than the specified size ๐--log-sendfileโ logsendfilerequests ๐ค--log-ioerrorโ log requests with io errors ๐ฉน--log-microsโ report response time in microseconds instead of milliseconds โฑ๏ธ (yes queen, be precise)--log-x-forwarded-forโ use the ip from theX-Forwarded-Forheader instead ofREMOTE_ADDR๐
--master-as-rootโ leave the master process running as root ๐๐--drop-after-initโ run privileges drop after plugin initialization, superseded bydrop-after-apps๐--drop-after-appsโ run privileges drop after apps loading, superseded bymaster-as-root๐--force-cwdโ force the initial working directory to the specified value ๐--binshโ override/bin/sh(used by exec hooks โ it always falls back to/bin/sh) ๐--chdirโchdirto the specified directory before apps loading ๐ช--chdir2โchdirto the specified directory after apps loading ๐ชโจ
--lazyโ set lazy mode (load apps in workers instead of the master) ๐ด--lazy-appsโ load apps in each worker instead of the master ๐ด--cheapโ set cheap mode (spawn workers only after the first request) ๐ช--cheaperโ set cheaper mode (adaptive process spawning) ๐--cheaper-initialโ set the initial number of processes to spawn in cheaper mode ๐ข--cheaper-algoโ choose the algorithm used for adaptive process spawning ๐ง--cheaper-stepโ number of additional processes to spawn at each overload ๐ช--cheaper-overloadโ increase workers after the specified overload ๐๏ธ--cheaper-algo-listโ list enabled cheapers algorithms ๐--cheaper-algos-listโ list enabled cheapers algorithms ๐--cheaper-listโ list enabled cheapers algorithms ๐--cheaper-rss-limit-softโ don't spawn new workers if the total resident memory usage of all workers is higher than this limit ๐ง ๐ง--cheaper-rss-limit-hardโ if total workers resident memory usage is higher, try to stop workers ๐--idleโ set idle mode (puts uWSGI in cheap mode after inactivity) ๐ค--die-on-idleโ shutdown uWSGI when idle โฐ๏ธ the ultimate nap.
--mountโ load an application under a mountpoint ๐๏ธ--worker-mountโ load an application under a mountpoint in the specified worker, or after workers spawn ๐๏ธ๐งโ๐ญ--threadsโ run each worker in prethreaded mode with the specified number of threads ๐งต--thread-stacksizeโ set the threads stacksize ๐--threads-stacksizeโ set the threads stacksize ๐--thread-stack-sizeโ set the threads stacksize ๐--threads-stack-sizeโ set the threads stacksize ๐
--vhostโ enable virtualhosting mode (based on theSERVER_NAMEvariable) ๐--vhost-hostโ enable virtualhosting mode (based on theHTTP_HOSTvariable) ๐
ok here comes the routing section ๐ (still OPTIONS, bestie, we're just vibing)
--routeโ add a route ๐ฃ๏ธ--route-hostโ add a route based on the Host header ๐ท๏ธ--route-uriโ add a route based onREQUEST_URI๐--route-qsโ add a route based onQUERY_STRINGโ--route-remote-addrโ add a route based onREMOTE_ADDR๐--route-user-agentโ add a route based onHTTP_USER_AGENT๐ต๏ธ--route-remote-userโ add a route based onREMOTE_USER๐ค--route-refererโ add a route based onHTTP_REFERERโฉ๏ธ--route-labelโ add a routing label (for use withgoto) ๐--route-ifโ add a route based on a condition ๐งฉ--route-if-notโ add a route based on a condition (negate version) ๐--route-runโ always run the specified route action โถ๏ธ--final-routeโ add a final route ๐--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 onREQUEST_URI๐--final-route-qsโ add a final route based onQUERY_STRING๐--final-route-remote-addrโ add a final route based onREMOTE_ADDR๐--final-route-user-agentโ add a final route based onHTTP_USER_AGENT๐--final-route-remote-userโ add a final route based onREMOTE_USER๐--final-route-refererโ add a final route based onHTTP_REFERER๐--final-route-labelโ add a final routing label (for use withgoto) ๐๐--final-route-ifโ add a final route based on a condition ๐--final-route-if-notโ add a final route based on a condition (negate version) ๐๐--final-route-runโ always run the specified final route action ๐โถ๏ธ--error-routeโ add an error route ๐จ--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 onREQUEST_URI๐จ--error-route-qsโ add an error route based onQUERY_STRING๐จ--error-route-remote-addrโ add an error route based onREMOTE_ADDR๐จ--error-route-user-agentโ add an error route based onHTTP_USER_AGENT๐จ--error-route-remote-userโ add an error route based onREMOTE_USER๐จ--error-route-refererโ add an error route based onHTTP_REFERER๐จ--error-route-labelโ add an error routing label (for use withgoto) ๐จ๐--error-route-ifโ add an error route based on a condition ๐จ--error-route-if-notโ add an error route based on a condition (negate version) ๐จ๐--error-route-runโ always run the specified error route action ๐จโถ๏ธ--response-routeโ add a response route ๐ฌ--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 onREQUEST_URI๐ฌ--response-route-qsโ add a response route based onQUERY_STRING๐ฌ--response-route-remote-addrโ add a response route based onREMOTE_ADDR๐ฌ--response-route-user-agentโ add a response route based onHTTP_USER_AGENT๐ฌ--response-route-remote-userโ add a response route based onREMOTE_USER๐ฌ--response-route-refererโ add a response route based onHTTP_REFERER๐ฌ--response-route-labelโ add a response routing label (for use withgoto) ๐ฌ๐--response-route-ifโ add a response route based on a condition ๐ฌ--response-route-if-notโ add a response route based on a condition (negate version) ๐ฌ๐--response-route-runโ always run the specified response route action ๐ฌโถ๏ธ--router-listโ list enabled routers ๐--routers-listโ list enabled routers ๐
--error-page-403โ add an error page (html) for the managed403response ๐ซ--error-page-404โ add an error page (html) for the managed404response ๐ป--error-page-500โ add an error page (html) for the managed500response ๐ฅ--websockets-ping-freqโ set the frequency (in seconds) of websockets automatic ping packets ๐--websocket-ping-freqโ set the frequency (in seconds) of websockets automatic ping packets ๐--websockets-pong-toleranceโ set the tolerance (in seconds) of the websockets ping/pong subsystem ๐--websocket-pong-toleranceโ set the tolerance (in seconds) of the websockets ping/pong subsystem ๐--websockets-max-sizeโ set the max allowed size of websocket messages (in Kbytes, default1024) ๐ฆ--websocket-max-sizeโ set the max allowed size of websocket messages (in Kbytes, default1024) ๐ฆ--chunked-input-limitโ set the max size of a chunked input part (default1MB, in bytes) ๐งฉ--chunked-input-timeoutโ set the default timeout for chunked input โณ--clockโ set a clock source ๐ฐ๏ธ--clock-listโ list enabled clocks ๐
ok that's this chunk done bestie, keep going, the options are still coming ๐โจ
--clocks-listโ lists all the clocks that are currently enabled, bestie โฐ--add-headerโ auto-drops HTTP headers into the response for you, no manual labour ๐--rem-headerโ auto-removes the HTTP header you name from the response ๐ซฅ--del-headerโ same gig, different name: nukes the specified HTTP header out of the response ๐๏ธ--collect-headerโ stashes the given response header into a request var (syntax:header var) ๐--response-header-collectโ literally the same thing: response header โ request var (syntax:header var) ๐--pull-headerโ grabs the specified response header, saves it into a request var, and yeets it out of the response (syntax:header var) ๐ซณ--check-staticโ peeks for static files inside the directory you point at ๐--check-static-docrootโ peeks for static files inside the requestedDOCUMENT_ROOT๐--static-checkโ yes bestie it's the check-static twin: looks for static files in the specified directory ๐--static-mapโ maps a mountpoint onto a static directory (or a single file) ๐บ๏ธ--static-map2โ like--static-map, except it fully appends the requested resource onto the docroot โจ--static-skip-extโ skips the extension you name during staticfile checks ๐--static-indexโ if someone requests a directory, it goes hunting for the file you specified ๐--static-safeโ skips the security checks when the file lives under the path you gave ๐--static-cache-pathsโ shoves the resolved paths into the uWSGI cache for however many seconds you say ๐๏ธ--static-cache-paths-nameโ uses the cache you pick for those static paths ๐ฏ--mimefileโ sets the mime types file path (default/etc/mime.types) ๐--mime-fileโ identical twin energy: sets the mime types file path (default/etc/mime.types) ๐--static-expires-typeโ sets theExpiresheader based on the content type ๐--static-expires-type-mtimeโ sets theExpiresheader based on the content type and the file mtime โฑ๏ธ--static-expiresโ sets theExpiresheader based on a filename regexp ๐ค--static-expires-mtimeโ sets theExpiresheader based on a filename regexp and the file mtime โฑ๏ธ--static-expires-uriโ sets theExpiresheader based on aREQUEST_URIregexp ๐ค--static-expires-uri-mtimeโ sets theExpiresheader based on aREQUEST_URIregexp and the file mtime โฑ๏ธ--static-expires-path-infoโ sets theExpiresheader based on aPATH_INFOregexp ๐ค--static-expires-path-info-mtimeโ sets theExpiresheader based on aPATH_INFOregexp and the file mtime โฑ๏ธ--static-gzipโ if the regexp you handed over matches the static file translation, it'll go looking for a gzip version ๐๏ธ--static-gzip-allโ checks for a gzip version of every requested static file ๐๏ธ--static-gzip-dirโ checks for a gzip version of all requested static files inside the dir/prefix you name ๐--static-gzip-prefixโ same deal, still hunting gzip versions of all requested static files in the specified dir/prefix ๐--static-gzip-extโ hunts for a gzip version of all requested static files carrying the ext/suffix you specified ๐ท๏ธ--static-gzip-suffixโ yeah it's the ext/suffix one again: gzip versions of all requested static files with that ext/suffix ๐ท๏ธ--honour-rangeโ switches on support for the HTTPRangeheader ๐--offload-threadsโ sets how many offload threads to spawn (per-worker, default0) ๐งต--offload-threadโ the singular-named twin, same job: number of offload threads to spawn (per-worker, default0) ๐งต--file-serve-modeโ sets the static file serving mode ๐--fileserve-modeโ sets the static file serving mode (yes, no dash, same vibe) ๐--disable-sendfileโ killssendfile()and makes everything run on plain boringread()/write()๐ด--check-cacheโ looks for response data in the cache you name (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 an environment variable ๐--envdirโ loads a daemontools compatible envdir ๐--early-envdirโ loads a daemontools compatible envdir ASAP, no waiting around โก--unenvโ unset an environment variable ๐งน--vacuumโ tries to remove every generated file and socket on the way out ๐งฝ--file-writeโ writes the content you give to the file you give (syntax:file=value), and it happens before privileges drop โ ๏ธ--cgroupโ drops the processes into the cgroup you specify ๐ช--cgroup-optโ sets a value in the specified cgroup option ๐ง--cgroup-dir-modeโ sets the permission for the cgroup directory (default is700) ๐--namespaceโ runs inside a brand-new namespace under the rootfs you specify ๐--namespace-keep-mountโ keeps the mountpoint you name alive inside your namespace ๐งท--nsโ runs in a new namespace under the specified rootfs (short and sweet version) ๐--namespace-netโ adds a network namespace ๐ธ๏ธ--ns-netโ adds a network namespace, tiny-name edition ๐ธ๏ธ--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 โก--tcp-fastopenโ same flag, no dash:TCP_FASTOPENon TCP sockets with your qlen value โก--tcp-fast-open-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()when it's supported ๐--tcp-fastopen-clientโ identical, stillsendto(..., 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 name ๐--cronโ adds a cron task โฐ--cron2โ adds a cron task usingkey=valsyntax โฐ--unique-cronโ adds a unique cron task, one of a kind ๐--cron-harakiriโ sets the maximum time (in seconds) we wait for a cron command to complete โณ--legion-cronโ adds a cron task that only runs when the instance is a lord of the legion you specified ๐--cron-legionโ also adds a cron task runnable only 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โ same thing, name flipped: unique cron task, runnable only when the instance is a lord of the specified legion ๐๐--loopโ selects the uWSGI loop engine ๐--loop-listโ lists enabled loop engines ๐--loops-listโ lists enabled loop engines (plural, same list, we love options) ๐--worker-execโ runs the command you give as a worker ๐ ๏ธ--worker-exec2โ runs the specified command as a worker, but 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 that 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-daemon, except the daemon only runs on the legion lord node ๐--legion-smart-attach-daemonโ same as--smart-attach-daemon, except the daemon only runs on the legion lord node ๐--legion-smart-attach-daemon2โ same as--smart-attach-daemon2, except the daemon only runs on the legion lord node ๐--daemons-honour-stdinโ does not swap the stdin of external daemons over to/dev/null๐--attach-daemon2โ the attach-daemon keyval variant (supports smart modes too) ๐๏ธ--pluginsโ loads uWSGI plugins ๐งฉ--pluginโ loads uWSGI plugins, one-letter-shorter edition ๐งฉ--need-pluginsโ loads uWSGI plugins, and actually exits on error ๐จ--need-pluginโ loads uWSGI plugins and exits on error, singular name ๐จ--plugins-dirโ adds a directory to the uWSGI plugin search path ๐--plugin-dirโ adds a directory to the uWSGI plugin search path, same path, shorter name ๐--plugins-listโ lists enabled plugins ๐--plugin-listโ lists enabled plugins (you already know it's the twin) ๐--autoloadโ tries to automatically load plugins whenever unknown options show up ๐ค--dlopenโ blindly loads a shared library ๐--allowed-modifiersโ a comma separated list of the allowed modifiers โ--remap-modifierโ remaps a request modifier from one id to another ๐--dump-optionsโ dumps the full list of every available option ๐๏ธ--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 (fordata://usage) โ--printโ simple print ๐จ๏ธ--iprintโ simple print, immediate version โก๐จ๏ธ--exitโ forceexit()on the instance ๐ช๐จ--cflagsโ reports uWSGI CFLAGS (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 options buffet, bestie, we ate and left no crumbs ๐โจ
this one's from uwsgi_xslt, version 2.0.31-debian, dated July 2026 โ aka UWSGI_XSLT(1), and yes she's iconic, keep her close ๐๐ฆ๐
๐ฆ where this page comes from
- ubuntu stonking: uwsgi-plugin-xslt 2.0.31-6build1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms