UWSGI_RACK_RUBY31(1)
๐ UWSGI_RACK_RUBY31 ๐
okay bestie, so this is the manual page for uwsgi_rack_ruby31 โ section 1 of the manual, User Commands, if you were wondering where to find it in the stack ๐ซถ
โจ NAME โจ
uwsgi_rack_ruby31 โ fast (pure C), self-healing, developer-friendly WSGI server
no literally that's the whole name section and it's lowkey iconic?? "self-healing" and "developer-friendly" in the same breath, she contains multitudes ๐
โจ SYNOPSIS โจ
uwsgi-core-local [options...]
โจ DESCRIPTION โจ
okay so this is the big one, the main character section, and it's basically the entire option buffet. grab a snack, we're going through every single one ๐ธ
๐ Sockets & Protocols
-s,--socketโ bind to the specified UNIX/TCP socket using default protocol-s,--uwsgi-socketโ bind to the specified UNIX/TCP socket using uwsgi protocol--suwsgi-socketโ bind to the specified UNIX/TCP socket using uwsgi protocol over SSL--ssl-socketโ bind to the specified UNIX/TCP socket using uwsgi protocol over SSL--http-socketโ bind to the specified UNIX/TCP socket using HTTP protocol--http-socket-modifier1โ force the specified modifier1 when using HTTP protocol--http-socket-modifier2โ force the specified modifier2 when using HTTP protocol--http11-socketโ bind to the specified UNIX/TCP socket using HTTP 1.1 (Keep-Alive) protocol--https-socketโ bind to the specified UNIX/TCP socket using HTTPS protocol--https-socket-modifier1โ force the specified modifier1 when using HTTPS protocol--https-socket-modifier2โ force the specified modifier2 when using 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)--fastcgi-modifier1โ force the specified modifier1 when using FastCGI protocol--fastcgi-modifier2โ force the specified modifier2 when 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 specified modifier1 when using SCGI protocol--scgi-modifier2โ force the specified modifier2 when using SCGI protocol--raw-socketโ bind to the specified UNIX/TCP socket using RAW protocol--raw-modifier1โ force the specified modifier1 when using RAW protocol--raw-modifier2โ force the specified modifier2 when using RAW protocol--puwsgi-socketโ bind to the specified UNIX/TCP socket using persistent uwsgi protocol (puwsgi)--protocolโ force the specified protocol for default sockets--socket-protocolโ force the specified protocol for default sockets--shared-socketโ create a shared socket for advanced jailing or ipc--undeferred-shared-socketโ create a shared socket for advanced jailing or ipc (undeferred mode)
๐ง Workers, Processes & Harakiri
-p,--processesโ spawn the specified number of workers/processes-p,--workersโ spawn the specified number of workers/processes--thunder-lockโ serializeaccept()usage (if possible)-t,--harakiriโ set harakiri timeout--harakiri-verboseโ enable verbose mode for harakiri--harakiri-no-arhโ do not enable harakiri during after-request-hook--no-harakiri-arhโ do not enable harakiri during after-request-hook--no-harakiri-after-req-hookโ do not enable harakiri during after-request-hook--backtrace-depthโ set backtrace depth--mule-harakiriโ set harakiri timeout for mule tasks
๐ Config & Placeholders
-x,--xmlconfigโ load config from xml file-x,--xmlโ load config from xml file--configโ load configuration using the pluggable system--fallback-configโ re-exec uwsgi with the specified config when exit code is 1--strictโ enable strict mode (placeholder cannot be used)--skip-zeroโ skip check of file descriptor 0--skip-atexitโ skip atexit hooks (ignored by the master)--skip-atexit-teardownโ skip atexit teardown (ignored by the master)-S,--setโ set a placeholder or an option--set-placeholderโ set a placeholder--set-phโ set a placeholder--getโ print the specified option value and exit--declare-optionโ declare a new uWSGI custom option--declare-option2โ declare a new uWSGI custom option (non-immediate)--resolveโ place the result of a dns query in the specified placeholder, sytax:placeholder=name(immediate option)
yes bestie, the original really does say "sytax" and I am not fixing it, we respect the source material in this house ๐
๐ฆ Opt Logic (the if/for girlies)
--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 existance--if-not-fileโ (opt logic) check for file existance--if-dirโ (opt logic) check for directory existance--if-not-dirโ (opt logic) check for directory existance--ifdirโ (opt logic) check for directory existance--if-directoryโ (opt logic) check for directory existance--endifโ (opt logic) end if--end-ifโ (opt logic) end if
๐ Blacklist / Whitelist
--blacklistโ set options blacklist context--end-blacklistโ clear options blacklist context--whitelistโ set options whitelist context--end-whitelistโ clear options whitelist context
๐ Write Errors & Signals
--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 onwrite()/writev()
๐ธ Templating & Includes
--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)
๐ Daemonize & Instance Management
-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
โญ Tuning, Buffers & Sockets (again, but fancier)
-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
๐ Threads & Process Names
-T,--enable-threadsโ enable threads--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
๐ฅ Interpreters, Master & stdin
-i,--single-interpreterโ do not use multiple interpreters (where available)--need-appโ exit if no app can be loaded-M,--masterโ enable master process--honour-stdinโ do not remap stdin to/dev/null
๐ The Emperor (yes she gets her own whole subsection, she's that girl)
--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โ write the Emperor pid in the specified file--emperor-tyrantโ put the Emperor in Tyrant mode--emperor-tyrant-nofollowโ do not follow symlinks when checking for uid/gid in Tyrant mode--emperor-statsโ run the Emperor stats server--emperor-stats-serverโ run the Emperor stats server
okay that's part 1 wrapped, bestie โ but do NOT go anywhere, because more parts are coming and the options literally never stop ๐โจ
โจ OPTIONS โจ
okay bestie, buckle up, this is the long part and it's giving very much "reference manual but make it fashion" ๐
๐ The Emperor & His Vassals ๐ซถ
--early-emperorโ spawn the emperor as soon as possible. no waiting around, she's eager โจ--emperor-broodlordโ run the emperor in BroodLord mode. yes that's the real name. iconic, no notes ๐--emperor-throttleโ set the throttling level (in milliseconds) for vassals that are being bad. default is1000. time-out energy fr ๐ค--emperor-max-throttleโ set the max throttling level (in milliseconds) for misbehaving vassals. default is3 minutes. that's the ceiling bestie, don't push it ๐ซ--emperor-magic-execโ prefix vassal config files withexec://if they have the executable bit set. magic, literally โจ--emperor-on-demand-extensionโ search for a text file (vassal name + extension) that contains the on demand socket name ๐--emperor-on-demand-extโ same thing, shorter name. search for a text file (vassal name + extension) containing the on demand socket name ๐--emperor-on-demand-directoryโ enable on demand mode, binding to the unix socket in the specified directory, named like the vassal +.socket๐--emperor-on-demand-dirโ the abbreviated twin: enable on demand mode binding to the unix socket in the specified directory, named like the vassal +.socket๐ง--emperor-on-demand-execโ use the output of the specified command as the on demand socket name (the vassal name gets passed as the only argument) ๐ซก--emperor-extra-extensionโ allows the specified extension in the Emperor (the vassal will be called with--config) ๐--emperor-extra-extโ same vibe, short spelling: allows the specified extension in the Emperor (vassal called with--config) ๐--emperor-no-blacklistโ disable the Emperor blacklisting subsystem. everybody's forgiven, we're healing ๐--emperor-use-cloneโ useclone()instead offork(), passing the specifiedunshare()flags ๐ฏ--emperor-graceful-shutdownโ use vassals' graceful shutdown during ragnarok. yes, ragnarok. we said what we said ๐--emperor-capโ set vassals capability ๐งข--vassals-capโ set vassals capability ๐งข--vassal-capโ set vassals capability ๐งข (three names, one job, we love a flexible queen)--imperial-monitor-listโ list enabled imperial monitors ๐--imperial-monitors-listโ list enabled imperial monitors ๐ (plural bestie, both work)--vassals-inheritโ add config templates to vassals config (uses--inherit) ๐งฌ--vassals-includeโ include config templates to vassals config (uses--includeinstead of--inherit) ๐งฌ--vassals-inherit-beforeโ add config templates to vassals config (uses--inherit, parses before the vassal file) โฎ๏ธ--vassals-include-beforeโ include config templates to vassals config (uses--includeinstead of--inherit, parses before the vassal file) โฎ๏ธ--vassals-start-hookโ run the specified command before each vassal starts ๐--vassals-stop-hookโ run the specified command after the vassal's death ๐ชฆ--vassal-sosโ ask the emperor for reinforcement when overloaded ๐--vassal-sos-backlogโ ask the emperor for SOS if the backlog queue has more items than the value specified ๐--vassals-setโ automatically set the specified option (via--set) for every vassal ๐๏ธ--vassal-setโ automatically set the specified option (via--set) for every vassal ๐๏ธ (same deal, shorter name)--heartbeatโ announce healthiness to the emperor ๐
๐ Reloads, Shutdowns & General Drama ๐ญ
--reload-mercyโ set the maximum time (in seconds) we wait for workers and other processes to die during reload/shutdown โณ--worker-reload-mercyโ set the maximum time (in seconds) a worker can take to reload/shutdown. default is60โณ--mule-reload-mercyโ set the maximum time (in seconds) a mule can take to reload/shutdown. default is60โณ--exit-on-reloadโ force exit even if a reload is requested. she said no more ๐ช--die-on-termโ exit instead of doing a brutal reload onSIGTERM๐--force-gatewayโ force the spawn of the first registered gateway without a master ๐ชโจ
๐ ๏ธ Help & Debug Vibes ๐ซถ
-h,--helpโ show this help ๐-h,--usageโ show this help ๐ (same thing, different alias, slay)--print-symโ print the content of the specified binary symbol ๐--print-symbolโ print the content of the specified binary symbol ๐-r,--reaperโ callwaitpid(-1,...)after each request to get rid of zombies ๐ง-R,--max-requestsโ reload workers after the specified amount of managed requests ๐ข--min-worker-lifetimeโ number of seconds a worker must run before being reloaded. default is60โฑ๏ธ--max-worker-lifetimeโ reload workers after the specified amount of seconds. default is disabled ๐ซ--max-worker-lifetime-deltaโ add (worker_id * delta) seconds to themax_worker_lifetimevalue of each worker โ-z,--socket-timeoutโ set internal sockets timeout โฐ--no-fd-passingโ disable file descriptor passing ๐ซ
๐ Locks, Shared Memory & FDs ๐
--locksโ create the specified number of shared locks ๐--lock-engineโ set the lock engine โ๏ธ--ftokโ set the ipcsem key viaftok()for avoiding duplicates ๐--persistent-ipcsemโ do not remove ipcsem's on shutdown ๐พ-A,--sharedareaโ create a raw shared memory area of the specified pages. heads up bestie: it supports keyval too ๐ง--safe-fdโ do not close the specified file descriptor ๐--fd-safeโ do not close the specified file descriptor ๐
๐พ Cache & Queues ๐
--cacheโ create a shared cache containing given elements ๐พ--cache-blocksizeโ set cache blocksize ๐ฆ--cache-storeโ enable persistent cache to disk ๐ฝ--cache-store-syncโ set frequency of sync for persistent cache ๐--cache-no-expireโ disable auto sweep of expired items ๐งน๐ซ--cache-expire-freqโ set the frequency of cache sweeper scans. default is3 secondsโฑ๏ธ--cache-report-freed-itemsโ constantly report the cache item freed by the sweeper. โ ๏ธ use only for debug ๐--cache-udp-serverโ bind the cache udp server (used only for set/update/delete) to the specified socket ๐--cache-udp-nodeโ send cache update/deletion to the specified cache udp server ๐ก--cache-syncโ copy the whole content of another uWSGI cache server on server startup ๐ฅ--cache-use-last-modifiedโ update thelast_modified_attimestamp on every cache item modification. default is disabled ๐ซ--add-cache-itemโ add an item in the cache โ--load-file-in-cacheโ load a static file in the cache ๐--load-file-in-cache-gzipโ load a static file in the cache with gzip compression ๐๏ธ--cache2โ create a new generation shared cache (keyval syntax) โจ--queueโ enable shared queue ๐ถโโ๏ธ๐ถโโ๏ธ๐ถโโ๏ธ--queue-blocksizeโ set queue blocksize ๐ฆ--queue-storeโ enable persistent queue to disk ๐ฝ--queue-store-syncโ set frequency of sync for persistent queue ๐
๐ Spoolers, Mules & Farms ๐ด
-Q,--spoolerโ run a spooler on the specified directory ๐๏ธ--spooler-externalโ map spooler requests to a spooler directory managed by an external instance ๐--spooler-orderedโ try to order the execution of spooler tasks ๐ข--spooler-chdirโchdir()to the specified directory before each spooler task ๐--spooler-processesโ set the number of processes for spoolers ๐ฏ--spooler-quietโ do not be verbose with spooler tasks ๐คซ--spooler-max-tasksโ set the maximum number of tasks to run before recycling a spooler โป๏ธ--spooler-harakiriโ set harakiri timeout for spooler tasks ๐ก๏ธ--spooler-frequencyโ set spooler frequency ๐ถ--spooler-freqโ set spooler frequency ๐ถ--muleโ add a mule ๐ด--mulesโ add the specified number of mules ๐ด๐ด๐ด--farmโ add a mule farm ๐--mule-msg-sizeโ set mule message buffer size ๐จ
๐ฃ Signals, Timers & RPC โฒ๏ธ
--signalโ send a uWSGI signal to a server ๐ก--signal-bufsizeโ set buffer size for the signal queue ๐ฆ--signals-bufsizeโ set buffer size for the signal queue ๐ฆ--signal-timerโ add a timer. syntax:<signal> <seconds>โฒ๏ธ--timerโ add a timer. syntax:<signal> <seconds>โฒ๏ธ--signal-rbtimerโ add a redblack timer. syntax:<signal> <seconds>๐ณโฒ๏ธ--rbtimerโ add a redblack timer. syntax:<signal> <seconds>๐ณโฒ๏ธ--rpc-maxโ maximum number of rpc slots. default:64๐
๐ Logging, Files & Root Stuff ๐
-L,--disable-loggingโ disable request logging ๐คซ--flockโ lock the specified file before starting, exit if locked ๐--flock-waitโ lock the specified file before starting, wait if locked โณ--flock2โ lock the specified file after logging/daemon setup, exit if locked ๐--flock-wait2โ lock the specified file after logging/daemon setup, wait if locked โณ--pidfileโ create pidfile (before privileges drop) ๐--pidfile2โ create pidfile (after privileges drop) ๐--safe-pidfileโ create safe pidfile (before privileges drop) ๐--safe-pidfile2โ create safe pidfile (after privileges drop) ๐--chrootโchroot()to the specified directory ๐ฆ--pivot-rootโpivot_root()to the specified directories (new_rootandput_oldmust be separated with a space) ๐--pivot_rootโpivot_root()to the specified directories (new_rootandput_oldmust be separated with a space) ๐
๐ Privileges, Namespaces & Jails ๐
--uidโsetuidto the specified user/uid ๐ชช--gidโsetgidto the specified group/gid ๐ชช--add-gidโ add the specified group id to the process credentials โ--immediate-uidโsetuidto the specified user/uid IMMEDIATELY โก--immediate-gidโsetgidto the specified group/gid IMMEDIATELY โก--no-initgroupsโ disable additional groups set viainitgroups()๐ซ--capโ set process capability ๐งข--unshareโunshare()part of the processes and put it in a new namespace ๐ซง--unshare2โunshare()part of the processes and put it in a new namespace after rootfs change ๐ซง--setns-socketโ expose a unix socket returning namespace fds from/proc/self/ns๐--setns-socket-skipโ skip the specified entry when sending setns file descriptors โญ๏ธ--setns-skipโ skip the specified entry when sending setns file descriptors โญ๏ธ--setnsโ join a namespace created by an external uWSGI instance ๐ช--setns-preopenโ open/proc/self/nsas soon as possible and cache fds โก--jailedโ mark the instance as jailed (forces the execution ofpost_jailhooks) โ๏ธ--reforkโfork()again after privileges drop. useful for jailing systems ๐ด--re-forkโfork()again after privileges drop. useful for jailing systems ๐ด--refork-as-rootโfork()again before privileges drop. useful for jailing systems ๐ด--re-fork-as-rootโfork()again before privileges drop. useful for jailing systems ๐ด--refork-post-jailโfork()again after jailing. genuinely useful for jailing systems ๐ซถ--re-fork-post-jailโ same energy as above:fork()again after jailing, and yeah, it's useful for jailing systems. (it's giving "same thing, different spelling" ๐ )--hook-asapโ run the hook you specified, like, immediately. as soon as possible, no waiting around โจ--hook-pre-jailโ run that specified hook before jailing ๐--hook-post-jailโ run that specified hook after jailing ๐ธ--hook-in-jailโ run the specified hook in jail, after initialization ๐ฆ--hook-as-rootโ run the specified hook before privileges drop ๐--hook-as-userโ run the specified hook after privileges drop ๐--hook-as-user-atexitโ run the specified hook before app exit and reload, bestie ๐ฅฒ--hook-pre-appโ run the specified hook before app loading โจ--hook-post-appโ run the specified hook after app loading ๐--hook-post-forkโ run the specified hook after each fork ๐ฅ--hook-acceptingโ run the specified hook after each worker enters the accepting phase ๐--hook-accepting1โ run the specified hook after the first worker enters the accepting phase โญ--hook-accepting-onceโ run the specified hook after each worker enters the accepting phase, once per-instance ๐--hook-accepting1-onceโ run the specified hook after the first worker enters the accepting phase, once per instance ๐ธ--hook-master-startโ run the specified hook when the Master starts ๐--hook-touchโ run the specified hook when the specified file is touched (syntax:<file> <action>) ๐ซถ--hook-emperor-startโ run the specified hook when the Emperor starts ๐--hook-emperor-stopโ run the specified hook when the Emperor sends a stop message ๐--hook-emperor-reloadโ run the specified hook when the Emperor sends a reload message ๐--hook-emperor-lostโ run the specified hook when the Emperor connection is lost ๐ญ--hook-as-vassalโ run the specified hook beforeexec()ing the vassal ๐ง--hook-as-emperorโ run the specified hook in the emperor after the vassal has been started ๐--hook-as-muleโ run the specified hook in each mule ๐ด--hook-as-gatewayโ run the specified hook in each gateway ๐--after-request-hookโ run the specified function/symbol after each request โจ--after-request-callโ run the specified function/symbol after each request (yes it's the same description, no I'm not kidding) ๐
okay now we're in the exec era of this list, and it's a whole parallel universe of the hooks you just met:
--exec-asapโ run the specified command as soon as possible โก--exec-pre-jailโ run the specified command before jailing ๐--exec-post-jailโ run the specified command after jailing ๐ธ--exec-in-jailโ run the specified command in jail after initialization ๐ฆ--exec-as-rootโ run the specified command before privileges drop ๐--exec-as-userโ run the specified command after privileges drop ๐--exec-as-user-atexitโ run the specified command before app exit and reload ๐ฅฒ--exec-pre-appโ run the specified command before app loading โจ--exec-post-appโ run the specified command after app loading ๐--exec-as-vassalโ run the specified command beforeexec()ing the vassal ๐ง--exec-as-emperorโ run the specified command in the emperor after the vassal has been started ๐
and now mount things. same vibes, filesystem edition:
--mount-asapโ mount filesystem as soon as possible โก--mount-pre-jailโ mount filesystem before jailing ๐--mount-post-jailโ mount filesystem after jailing ๐ธ--mount-in-jailโ mount filesystem in jail after initialization ๐ฆ--mount-as-rootโ mount filesystem before privileges drop ๐--mount-as-vassalโ mount filesystem beforeexec()ing the vassal ๐ง--mount-as-emperorโ mount filesystem in the emperor after the vassal has been started ๐--umount-asapโ unmount filesystem as soon as possible โก--umount-pre-jailโ unmount filesystem before jailing ๐--umount-post-jailโ unmount filesystem after jailing ๐ธ--umount-in-jailโ unmount filesystem in jail after initialization ๐ฆ--umount-as-rootโ unmount filesystem before privileges drop ๐--umount-as-vassalโ unmount filesystem beforeexec()ing the vassal ๐ง--umount-as-emperorโ unmount filesystem in the emperor after the vassal has been started ๐
now the waiting era. bestie, this section is literally just "chill, we're waiting for stuff to exist before we run root hooks":
--wait-for-interfaceโ wait for the specified network interface 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 thing again) ๐--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 specified filesystem item to appear before running root hooks ๐--wait-for-fileโ wait for the specified file to appear before running root hooks ๐--wait-for-dirโ wait for the specified directory to appear before running root hooks ๐--wait-for-mountpointโ wait for the specified mountpoint to appear before running root hooks ๐๏ธ--wait-for-fs-timeoutโ set the timeout forwait-for-fs/file/dirโณ--wait-for-socketโ wait for the specified socket to be ready before loading apps ๐--wait-for-socket-timeoutโ set the timeout forwait-for-socketโณ
and then call. the call crew, which comes with a lil function-signature glow-up for the vassal and emperor ones ๐ :
--call-asapโ call the specified function as soon as possible โก--call-pre-jailโ call the specified function before jailing ๐--call-post-jailโ call the specified function after jailing ๐ธ--call-in-jailโ call the specified function in jail after initialization ๐ฆ--call-as-rootโ call the specified function before privileges drop ๐--call-as-userโ call the specified function after privileges drop ๐--call-as-user-atexitโ call the specified function before app exit and reload ๐ฅฒ--call-pre-appโ call the specified function before app loading โจ--call-post-appโ call the specified function after app loading ๐--call-as-vassalโ call the 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 ๐
config-loading time, and bestie watch out because some of these share the same short flag โ I'm just telling you what the page says, fr fr:
--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 ๐--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 ๐
touchy-feely reload territory (in the literal "a file got touched" sense, not the emotional sense ๐):
--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โ signal when the specified file is modified/touched (syntax:file signal) ๐ก--fs-reloadโ graceful reload when the specified filesystem object is modified ๐ธ--fs-brutal-reloadโ brutal reload when the specified filesystem object is modified ๐--fs-signalโ raise a uwsgi signal when the specified filesystem object is modified (syntax:file signal) ๐ก--check-mountpoint,--mountpoint-check,--check-mount,--mount-checkโ destroys the instance if a filesystem is no longer reachable (super useful for reliable Fuse management) ๐--propagate-touchโ over-engineering option for systems with flaky signal management ๐--limit-postโ limits request body ๐ซถ--no-orphansโ automatically kills workers if master dies (can be dangerous for availability) ๐ฌ--prioโ sets processes/threads priority ๐--cpu-affinityโ sets cpu affinity ๐ง--post-bufferingโ sets the size in bytes after which it will buffer to disk instead of memory ๐ฆ--post-buffering-bufsizeโ sets buffer size forread()in post buffering mode ๐--body-read-warningโ sets the amount of allowed memory allocation (in megabytes) for request body before starting printing a warning โ ๏ธ--upload-progressโ enables creation of.jsonfiles in the specified directory during a file upload ๐--no-default-appโ does not fallback to default app ๐ซ--manage-script-nameโ automatically rewritesSCRIPT_NAMEandPATH_INFOโจ--ignore-script-nameโ ignoresSCRIPT_NAME๐ โโ๏ธ--catch-exceptionsโ reports exception as http output (discouraged, use only for testing) ๐ญ--reload-on-exceptionโ reloads a worker when an exception is raised ๐--reload-on-exception-typeโ reloads a worker when a specific exception type is raised ๐--reload-on-exception-valueโ reloads a worker when a specific exception value is raised ๐--reload-on-exception-reprโ reloads a worker when a specific exception type+value (language-specific) is raised ๐--exception-handlerโ adds an exception handler ๐ ๏ธ--enable-metricsโ enables metrics subsystem ๐--metricโ adds a custom metric ๐--metric-threshold,--metric-alarm,--alarm-metricโ adds a metric threshold/alarm ๐จ--metrics-dir,--metric-dirโ exports metrics as text files to the specified directory ๐--metrics-dir-restore,--metric-dir-restoreโ restores last value taken from the metrics dir โป๏ธ--metrics-no-coresโ disables generation of cores-related metrics ๐ซ--udpโ runs the udp server on the specified address ๐ก--stats,--stats-serverโ enables the stats server on the specified address ๐--stats-httpโ prefixes stats server json output with http headers ๐--stats-minified,--stats-minโ minifies statistics json output โจ--stats-pushโ pushes the stats json to the specified destination ๐ค--stats-pusher-default-freq,--stats-pushers-default-freqโ sets the default frequency of stats pushers โฑ๏ธ--stats-no-coresโ disables generation of cores-related stats ๐ซ--stats-no-metricsโ does not include metrics in stats output ๐--multicastโ subscribes to specified multicast group ๐ก--multicast-ttlโ sets multicast ttl โณ--multicast-loopโ sets multicast loop (default 1) ๐--master-fifoโ enables the master fifo ๐--notify-socketโ enables the notification socket ๐--subscription-notify-socketโ sets the notification socket for subscriptions ๐ฌ--legionโ becomes a member of a legion ๐--legion-mcastโ becomes a member of a legion (shortcut for multicast) ๐ฐ๏ธ--legion-nodeโ adds a node to a legion โ--legion-freqโ sets the frequency of legion packets ๐ถ--legion-toleranceโ sets the tolerance of legion subsystem ๐ซ--legion-death-on-lord-errorโ declares itself as a dead node for the specified amount of seconds if one of the lord hooks fails ๐--legion-skew-toleranceโ sets the clock skew tolerance of legion subsystem (default 30 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 when a node leaves legion ๐ช--legion-quorumโ sets the quorum of a legion ๐ณ๏ธ--legion-scrollโ sets the scroll of a legion ๐--legion-scroll-max-sizeโ sets max size of legion scroll buffer ๐--legion-scroll-list-max-sizeโ sets max size of legion scroll list buffer ๐--subscriptions-sign-checkโ sets digest algorithm and certificate directory for secured subscription system ๐--subscriptions-sign-check-toleranceโ sets the maximum tolerance (in seconds) of clock skew for secured subscription system โฑ๏ธ--subscriptions-sign-skip-uidโ skips signature check for the specified uid when using unix sockets credentials ๐--subscriptions-credentials-checkโ adds a directory to search for subscriptions key credentials ๐--subscriptions-use-credentialsโ enables management ofSCM_CREDENTIALSin subscriptions UNIX sockets ๐ชช--subscription-algoโ sets load balancing algorithm for the subscription system โ๏ธ--subscription-dotsplitโ tries to fallback to the next part (dot based) in subscription key ๐--subscribe-to,--st,--subscribeโ subscribes to the specified subscription server ๐ก--subscribe2โ subscribes to the specified subscription server using advanced keyval syntax โจ--subscribe-freqโ sends subscription announce at the specified interval โฒ๏ธ--subscription-toleranceโ sets tolerance for subscription servers ๐ซ--unsubscribe-on-graceful-reloadโ forces unsubscribe request even during graceful reload ๐--start-unsubscribedโ configures subscriptions but does not send them (useful with master fifo) ๐คซ--subscribe-with-modifier1โ forces the specified modifier1 when subscribing 1๏ธโฃ--snmpโ enables the embedded snmp server ๐--snmp-communityโ sets the snmp community string ๐ค--ssl-verboseโ be verbose about SSL errors ๐ฃ๏ธ--ssl-verify-depthโ sets maximum certificate verification depth ๐--sniโ adds an SNI-governed SSL context ๐--sni-dirโ checks forcert/key/client_cafile in the specified directory and creates a sni/ssl context on demand ๐--sni-dir-ciphersโ sets ssl ciphers for sni-dir option ๐--ssl-enable3,--ssl-enable-sslv3โ enables SSLv3 (insecure) ๐ฑ--ssl-enable-tlsv1โ enables TLSv1 (insecure) ๐ฑ--ssl-optionโ sets a raw ssl option (numeric value) ๐ข--sni-regexpโ adds an SNI-governed SSL context (the key is a regexp) ๐งฉ--ssl-tmp-dirโ stores ssl-related temp files in the specified directory ๐๏ธ--check-intervalโ sets the interval (in seconds) of master checks โฑ๏ธ--forkbomb-delayโ sleeps for the specified number of seconds when a forkbomb is detected ๐ฃ--binary-pathโ forces binary path ๐--privileged-binary-patchโ patches the uwsgi binary with a new command (before privileges drop) ๐ฉน--unprivileged-binary-patchโ patches the uwsgi binary with a new command (after privileges drop) ๐ฉน--privileged-binary-patch-argโ patches the uwsgi binary with a new command and arguments (before privileges drop) ๐ฉน--unprivileged-binary-patch-argโ patches the uwsgi binary with a new command and arguments (after privileges drop) ๐ฉน--asyncโ enables async mode with specified cores โก--max-fdโ sets maximum number of file descriptors (requires root privileges) ๐ข--logtoโ sets logfile/udp address ๐--logto2โ logs to specified file or udp address after privileges drop ๐--log-format,--logformatโ sets advanced format for request logging ๐จ--logformat-strftime,--log-format-strftimeโ applies strftime to logformat output ๐ฐ๏ธ--logfile-chownโ chowns logfiles ๐ค--logfile-chmodโ chmods logfiles ๐ง--log-syslogโ logs to syslog ๐จ--log-socketโ sends logs to the specified socket ๐--req-logger,--logger-reqโ sets/appends a request logger ๐ชต--loggerโ sets/appends a logger ๐ชต--logger-list,--loggers-listโ lists enabled loggers ๐--threaded-loggerโ offloads log writing to a thread ๐งต--log-encoderโ adds an item in the log encoder chain ๐--log-req-encoderโ adds an item in the log req encoder chain ๐--log-drainโ drains (does not show) log lines matching the specified regexp ๐ซ--log-filterโ shows only log lines matching the specified regexp ๐--log-routeโ logs to the specified named logger if regexp applied on logline matches ๐ฃ๏ธ--log-req-routeโ logs requests to the specified named logger if regexp applied on logline matches ๐ฃ๏ธ--use-abortโ callsabort()on segfault/fpe, could be useful for generating a core dump ๐ฅ--alarmโ creates a new alarm, syntax:<alarm> <plugin:args>๐จ--alarm-cheapโ uses main alarm thread rather than create dedicated threads for curl-based alarms ๐งต--alarm-freqโ tunes the anti-loop alarm system (default 3 seconds) โฒ๏ธ--alarm-fdโ raises the specified alarm when an fd is read for read (by default it reads 1 byte, set 8 for eventfd) ๐--alarm-segfaultโ raises the specified alarm when the segmentation fault handler is executed ๐--segfault-alarmโ when the segfault handler does its thing, raise the alarm you picked ๐ fr fr--alarm-backlogโ socket backlog queue is full? raise the specified alarm ๐--backlog-alarmโ same vibe, same alarm, socket backlog queue full ๐--lq-alarmโ yep, raise the specified alarm when the socket backlog queue is full--alarm-lqโ it's giving "socket backlog queue full โ raise that alarm" โจ--alarm-listen-queueโ raise the specified alarm when the socket backlog queue is full (bestie there are SO many spellings of this one, pick your fave)--listen-queue-alarmโ socket backlog queue full, raise the alarm, that's the whole job--log-alarmโ when a log line matches the regexp you gave, raise the specified alarm. syntax:<alarm>[,alarm...] <regexp>๐--alarm-logโ same energy: log line matches the regexp โ raise the specified alarm. syntax:<alarm>[,alarm...] <regexp>--not-log-alarmโ skip the specified alarm when a log line matches the regexp. syntax:<alarm>[,alarm...] <regexp>๐--not-alarm-logโ skip that alarm when the log line matches. syntax:<alarm>[,alarm...] <regexp>--alarm-listโ show me all the enabled alarms ๐--alarms-listโ list enabled alarms (plural slay)--alarm-msg-sizeโ set the max size of an alarm message (default8192) ๐--log-masterโ delegate logging to the master process, hand it off ๐--log-master-bufsizeโ set the buffer size for the master logger. heads up: bigger log messages will be truncated โ๏ธ--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 reload ๐--log-truncateโ truncate the log on startup, fresh start energy--log-maxsizeโ set the maximum logfile size--log-backupnameโ set the logfile name to use after rotation--logdateโ prefix logs with a date or astrftimestring ๐--log-dateโ prefix logs with date or astrftimestring (same, cuter hyphen)--log-prefixโ prefix logs with a string of your choosing--log-zeroโ log responses that have no body--log-slowโ log requests slower than the number of milliseconds you specify ๐--log-4xxโ log requests with a4xxresponse--log-5xxโ log requests with a5xxresponse--log-bigโ log requests bigger than the specified size--log-sendfileโ log sendfile requests--log-ioerrorโ log requests with io errors ๐ญ--log-microsโ report response time in microseconds instead of milliseconds โฑ๏ธ--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, and heads up: superseded bydrop-after-apps--drop-after-appsโ run privileges drop after apps loading, and fyi: superseded bymaster-as-root--force-cwdโ force the initial working directory to the value you specify--binshโ override/bin/sh(it's used by exec hooks, and it always falls back to/bin/sh)--chdirโ chdir to the specified directory before apps loading--chdir2โ chdir to the specified directory after apps loading--lazyโ set lazy mode (load apps in workers instead of 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 (put uWSGI in cheap mode after inactivity)--die-on-idleโ shutdown uWSGI when idle ๐--mountโ load application under a mountpoint--worker-mountโ load application under a mountpoint in the specified worker, or after workers spawn--threadsโ run each worker in prethreaded mode with the number of threads you specify ๐งต--thread-stacksizeโ set threads stacksize--threads-stacksizeโ set threads stacksize--thread-stack-sizeโ set threads stacksize--threads-stack-sizeโ set threads stacksize--vhostโ enable virtualhosting mode (based on theSERVER_NAMEvariable)--vhost-hostโ enable virtualhosting mode (based on theHTTP_HOSTvariable)--routeโ add a route ๐ฃ๏ธ--route-hostโ add a route based on theHostheader--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 theHostheader--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 theHostheader--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 theHostheader--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 managed403response--error-page-404โ add an error page (html) for managed404response--error-page-500โ add an error page (html) for 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--clocks-listโ list enabled clocks--add-headerโ automatically add HTTP headers to the response--rem-headerโ automatically remove the specified HTTP header from the response--del-headerโ automatically remove the specified HTTP header from the response--collect-headerโ store the specified response header in a request var (syntax:header var)--response-header-collectโ grab that response header and stash it in a request var, no cap (syntax:header var) ๐--pull-headerโ stash that response header in a request var AND yeet it out of the response (syntax:header var) ๐ซถ--check-staticโ peek for static files inside the directory you name ๐--check-static-docrootโ peek for static files in the requestedDOCUMENT_ROOT--static-checkโ same energy as--check-static: check for static files in the specified directory--static-mapโ map a mountpoint to a static directory (or a file) ๐บ๏ธ--static-map2โ like--static-map, but it completely appends the requested resource to the docroot--static-skip-extโ skip the extension you name from staticfile checks--static-indexโ if a directory is requested, search for the file you specify--static-safeโ skip security checks when the file is under the path you name--static-cache-pathsโ put resolved paths in the uWSGI cache for the number of seconds you specify--static-cache-paths-nameโ use the cache you name for static paths--mimefileโ set mime types file path (default/etc/mime.types) ๐--mime-fileโ set mime types file path (default/etc/mime.types)--static-expires-typeโ set theExpiresheader based on content type--static-expires-type-mtimeโ set theExpiresheader based on content type and file mtime--static-expiresโ set theExpiresheader based on a filename regexp--static-expires-mtimeโ set theExpiresheader based on a filename regexp and file mtime--static-expires-uriโ set theExpiresheader based on aREQUEST_URIregexp--static-expires-uri-mtimeโ set theExpiresheader based on aREQUEST_URIregexp and file mtime--static-expires-path-infoโ set theExpiresheader based on aPATH_INFOregexp--static-expires-path-info-mtimeโ set theExpiresheader based on aPATH_INFOregexp and file mtime--static-gzipโ if the regexp you supply matches the static file translation, it will search for a gzip version ๐ฆ--static-gzip-allโ check for a gzip version of all requested static files--static-gzip-dirโ check for a gzip version of all requested static files in the specified dir/prefix--static-gzip-prefixโ check for a gzip version of all requested static files in the specified dir/prefix--static-gzip-extโ check for a gzip version of all requested static files with the specified ext/suffix--static-gzip-suffixโ check for a gzip version of all requested static files with the specified ext/suffix--honour-rangeโ enable support for the HTTPRangeheader--offload-threadsโ set the number of offload threads to spawn (per-worker, default0) ๐งต--offload-threadโ set the number of offload threads to spawn (per-worker, default0)--file-serve-modeโ set static file serving mode--fileserve-modeโ set static file serving mode--disable-sendfileโ disablesendfile()and rely on boringread()/write()instead ๐--check-cacheโ check for response data in the specified cache (empty for default cache)--close-on-execโ set close-on-exec on connection sockets (could be required for spawning processes in requests)--close-on-exec2โ set close-on-exec on server sockets (could be required for spawning processes in requests)--modeโ set uWSGI custom mode--envโ set environment variable--envdirโ load a daemontools compatible envdir--early-envdirโ load a daemontools compatible envdir ASAP--unenvโ unset environment variable--vacuumโ try to remove all of the generated file/sockets ๐งน--file-writeโ write the specified content to the specified file (syntax:file=value) before privileges drop--cgroupโ put the processes in the specified cgroup--cgroup-optโ set value in specified cgroup option--cgroup-dir-modeโ set permission for cgroup directory (default is700)--namespaceโ run in a new namespace under the specified rootfs--namespace-keep-mountโ keep the specified mountpoint in your namespace--nsโ run in a new namespace under the specified rootfs--namespace-netโ add network namespace--ns-netโ add network namespace--enable-proxy-protocolโ enablePROXY1protocol support (only for http parsers)--reuse-portโ enableREUSE_PORTflag on socket (BSD only)--tcp-fast-openโ enableTCP_FASTOPENflag on TCP sockets with the specified qlen value--tcp-fastopenโ enableTCP_FASTOPENflag on TCP sockets with the specified qlen value--tcp-fast-open-clientโ usesendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported--tcp-fastopen-clientโ usesendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported--zergโ attach to a zerg server ๐พ--zerg-fallbackโ fallback to normal sockets if the zerg server is not available--zerg-serverโ enable the zerg server on the specified UNIX socket--cronโ add a cron task โฐ--cron2โ add a cron task (key=val syntax)--unique-cronโ add a unique cron task--cron-harakiriโ set the maximum time (in seconds) we wait for cron command to complete--legion-cronโ add a cron task runnable only when the instance is a lord of the specified legion--cron-legionโ add a cron task runnable only when the instance is a lord of the specified legion--unique-legion-cronโ add a unique cron task runnable only when the instance is a lord of the specified legion--unique-cron-legionโ add a unique cron task runnable only when the instance is a lord of the specified legion--loopโ select the uWSGI loop engine--loop-listโ list enabled loop engines--loops-listโ list enabled loop engines--worker-execโ run the specified command as worker--worker-exec2โ run the specified command as worker (afterpost_forkhook)--attach-daemonโ attach a command/daemon to the master process (the command has to not go in background)--attach-control-daemonโ attach a command/daemon to the master process (the command has to not go in background), when the daemon dies, the master dies too ๐--smart-attach-daemonโ attach a command/daemon to the master process managed by a pidfile (the command has to daemonize)--smart-attach-daemon2โ attach a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize)--legion-attach-daemonโ same as--attach-daemonbut daemon runs only on legion lord node--legion-smart-attach-daemonโ same as--smart-attach-daemonbut daemon runs only on legion lord node--legion-smart-attach-daemon2โ same as--smart-attach-daemon2but daemon runs only on legion lord node--daemons-honour-stdinโ do not change the stdin of external daemons to/dev/null--attach-daemon2โattach-daemonkeyval variant (supports smart modes too)--pluginsโ load uWSGI plugins ๐งฉ--pluginโ load uWSGI plugins--need-pluginsโ load uWSGI plugins (exit on error)--need-pluginโ load uWSGI plugins (exit on error)--plugins-dirโ add a directory to uWSGI plugin search path--plugin-dirโ add a directory to uWSGI plugin search path--plugins-listโ list enabled plugins--plugin-listโ list enabled plugins--autoloadโ try to automatically load plugins when unknown options are found--dlopenโ blindly load a shared library ๐--allowed-modifiersโ comma separated list of allowed modifiers--remap-modifierโ remap request modifier from one id to another--dump-optionsโ dump the full list of available options--show-configโ show the current config reformatted as ini--binary-append-dataโ return 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โ report uWSGICFLAGS(useful for building external plugins)--dot-hโ dump theuwsgi.hused for building the core (useful for building external plugins)--config-pyโ dump theuwsgiconfig.pyused for building the core (useful for building external plugins)--build-pluginโ build a uWSGI plugin for the current binary--versionโ print uWSGI version--response-headers-limitโ set response header maximum size (default:64k)
and that's the whole vibe check, bestie ๐
this page was uwsgi_rack_ruby31 2.0.21-debian, dated May 2023, and it's the UWSGI_RACK_RUBY31(1) manual โ periodt โจ
๐ฆ where this page comes from
- debian bookworm: uwsgi-plugin-rack-ruby3.1 2.0.21-5.1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms