UWSGI_PYTHON312(1)
β¨ uwsgi_python312 β¨
okay bestie, gather round, because this is the manual page for uwsgi_python312 β a fast (pure C), self-healing, developer-friendly WSGI server. yes. all of that. at once. it's giving main character energy and it hasn't even started talking yet π
π NAME π
uwsgi_python312 β fast (pure C), self-healing, developer-friendly WSGI server
π¦ SYNOPSIS π¦
uwsgi-core-local [options...]
π DESCRIPTION π
so like, this is a long list of options and I'm not skipping a single one, because you deserve the whole thing, periodt. let's go π
π 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, timeouts & 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-graceful-timeoutβ interval between graceful harakiri attempt and a sigkill--harakiri-graceful-signalβ use this signal instead of sigterm for graceful harakiri attempts--harakiri-queue-thresholdβ only trigger harakiri if queue is greater than this threshold--harakiri-no-arhβ do not enable harakiri during after-request-hook--no-harakiri-arhβ do not enable harakiri during after-request-hook--no-harakiri-after-req-hookβ do not enable harakiri during after-request-hook--backtrace-depthβ set backtrace depth--mule-harakiriβ set harakiri timeout for mule tasks
π configs & options magic π
-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)
π§ 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
π¦ lists & error handling π¦
--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 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)
π οΈ 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 & internals βοΈ
-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--no-threads-waitβ do not wait for threads cancellation on quit/reload
π« process names & master π«
--auto-procnameβ automatically set processes name to something meaningful--procname-prefixβ add a prefix to the process names--procname-prefix-spacedβ add a spaced prefix to the process names--procname-appendβ append a string to process names--procnameβ set process names--procname-masterβ set master process name-i,--single-interpreterβ do not use multiple interpreters (where available)--need-appβ exit if no app can be loaded-M,--masterβ enable master process--honour-stdinβ do not remap stdin to/dev/null
π the Emperor (yes, it's literally called that) π
--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
and that's just part one bestie, hold on, more is coming π
--emperor-tyrantβ puts the Emperor in Tyrant mode ππ--emperor-tyrant-nofollowβ when checking for uid/gid in Tyrant mode, do not follow symlinks π«π--emperor-statsβ runs the Emperor stats server πβ¨--emperor-stats-serverβ runs the Emperor stats server πβ¨ (same vibe, different flag name, bestie)--early-emperorβ spawns the emperor as soon as possible πββοΈπ¨--emperor-broodlordβ runs the emperor in BroodLord mode π¦π--emperor-throttleβ sets throttling level (in milliseconds) for bad behaving vassals (default1000) π€β±οΈ--emperor-max-throttleβ sets max throttling level (in milliseconds) for bad behaving vassals (default3 minutes) π¨β³--emperor-magic-execβ prefixes vassals config files withexec://if they have the executable bit πͺβ¨--emperor-on-demand-extensionβ searches for a text file (vassal name + extension) containing the on demand socket name ππ--emperor-on-demand-extβ searches for a text file (vassal name + extension) containing the on demand socket name ππ (same thing, shorter name, slay)--emperor-on-demand-directoryβ enables on demand mode binding to the unix socket in the specified directory named like the vassal +.socketππ--emperor-on-demand-dirβ enables on demand mode binding to the unix socket in the specified directory named like the vassal +.socketππ (yep, the alias)--emperor-on-demand-execβ uses the output of the specified command as on demand socket name (the vassal name is passed as the only argument) π»π--emperor-extra-extensionβ allows the specified extension in the Emperor (vassal will be called with--config) ποΈβ¨--emperor-extra-extβ allows the specified extension in the Emperor (vassal will be called with--config) ποΈβ¨ (alias energy)--emperor-no-blacklistβ disables the Emperor blacklisting subsystem π«π--emperor-use-cloneβ usesclone()instead offork()passing the specifiedunshare()flags π§¬π--emperor-graceful-shutdownβ uses vassals graceful shutdown during ragnarok π π--emperor-capβ sets vassals capability ποΈπ--vassals-capβ sets vassals capability ποΈπ--vassal-capβ sets vassals capability ποΈπ--imperial-monitor-listβ lists enabled imperial monitors ππ--imperial-monitors-listβ lists enabled imperial monitors ππ (plural, same vibe)--vassals-inheritβ adds config templates to vassals config (uses--inherit) ππ--vassals-includeβ includes config templates to vassals config (uses--includeinstead of--inherit) ππ--vassals-inherit-beforeβ adds config templates to vassals config (uses--inherit, parses before the vassal file) πβͺ--vassals-include-beforeβ includes config templates to vassals config (uses--includeinstead of--inherit, parses before the vassal file) πβͺ--vassals-start-hookβ runs the specified command before each vassal starts ππββοΈ--vassals-stop-hookβ runs the specified command after vassal's death ππ--vassal-sosβ asks emperor for reinforcement when overloaded ππ--vassal-sos-backlogβ asks emperor for SOS if backlog queue has more items than the value specified π¬π--vassals-setβ automatically sets the specified option (via--set) for every vassal βοΈβ¨--vassal-setβ automatically sets the specified option (via--set) for every vassal βοΈβ¨--heartbeatβ announces healthiness to the emperor ππ--reload-mercyβ sets the maximum time (in seconds) we wait for workers and other processes to die during reload/shutdown β³π--worker-reload-mercyβ sets the maximum time (in seconds) a worker can take to reload/shutdown (default is60) β³π·--mule-reload-mercyβ sets the maximum time (in seconds) a mule can take to reload/shutdown (default is60) β³π΄--exit-on-reloadβ forces exit even if a reload is requested πͺπ«--die-on-termβ exits instead of brutal reload onSIGTERMππ--force-gatewayβ forces the spawn of the first registered gateway without a master πͺβ‘-h|--helpβ shows this help πββοΈβ¨-h|--usageβ shows this help πββοΈβ¨--print-symβ prints content of the specified binary symbol π¨οΈπ£--print-symbolβ prints content of the specified binary symbol π¨οΈπ£-r|--reaperβ callswaitpid(-1,...)after each request to get rid of zombies π§ββοΈπͺ-R|--max-requestsβ reloads workers after the specified amount of managed requests ππ--min-worker-lifetimeβ number of seconds worker must run before being reloaded (default is60) β±οΈπ·--max-worker-lifetimeβ reloads workers after the specified amount of seconds (default is disabled) β±οΈπ«--max-worker-lifetime-deltaβ adds (worker_id * delta) seconds to themax_worker_lifetimevalue of each worker ββ±οΈ-z|--socket-timeoutβ sets internal sockets timeout β±οΈπ--no-fd-passingβ disables file descriptor passing π«π--locksβ creates the specified number of shared locks ππ’--lock-engineβ sets the lock engine βοΈπ--ftokβ sets the ipcsem key viaftok()for avoiding duplicates ππ--persistent-ipcsemβ does not remove ipcsem's on shutdown π«ποΈ-A|--sharedareaβ creates a raw shared memory area of specified pages (note: it supports keyval too) π§ β¨--safe-fdβ does not close the specified file descriptor π«π--fd-safeβ does not close the specified file descriptor π«π--cacheβ creates a shared cache containing given elements ποΈβ¨--cache-blocksizeβ sets cache blocksize π¦π’--cache-storeβ enables persistent cache to disk πΎποΈ--cache-store-syncβ sets frequency of sync for persistent cache ππΎ--cache-no-expireβ disables auto sweep of expired items π«π§Ή--cache-expire-freqβ sets the frequency of cache sweeper scans (default3 seconds) β±οΈπ§Ή--cache-report-freed-itemsβ constantly reports the cache item freed by the sweeper (use only for debug) π’π--cache-udp-serverβ binds the cache udp server (used only for set/update/delete) to the specified socket ππ‘--cache-udp-nodeβ sends cache update/deletion to the specified cache udp server π‘ποΈ--cache-syncβ copies the whole content of another uWSGI cache server on server startup πποΈ--cache-use-last-modifiedβ updateslast_modified_attimestamp on every cache item modification (default is disabled) β±οΈβοΈ--add-cache-itemβ adds an item in the cache βποΈ--load-file-in-cacheβ loads a static file in the cache πποΈ--load-file-in-cache-gzipβ loads a static file in the cache with gzip compression ποΈπ--cache2β creates a new generation shared cache (keyval syntax) πποΈ--queueβ enables shared queue π¬β¨--queue-blocksizeβ sets queue blocksize π¦π’--queue-storeβ enables persistent queue to disk πΎπ¬--queue-store-syncβ sets frequency of sync for persistent queue ππΎ-Q|--spoolerβ runs a spooler on the specified directory ππ--spooler-externalβ maps spoolers requests to a spooler directory managed by an external instance ππ--spooler-orderedβ tries to order the execution of spooler tasks π’π--spooler-chdirβchdir()to specified directory before each spooler task ππ--spooler-processesβ sets the number of processes for spoolers π’π·--spooler-quietβ does not be verbose with spooler tasks π€«π--spooler-max-tasksβ sets the maximum number of tasks to run before recycling a spooler πβ»οΈ--spooler-harakiriβ sets harakiri timeout for spooler tasks β±οΈπ‘οΈ--spooler-frequencyβ sets spooler frequency β±οΈπ--spooler-freqβ sets spooler frequency β±οΈπ--muleβ adds a mule π΄β¨--mulesβ adds the specified number of mules π΄π΄π΄--farmβ adds a mule farm ππ΄--mule-msg-sizeβ sets mule message buffer size ππ΄--signalβ sends a uwsgi signal to a server π‘β¨--signal-bufsizeβ sets buffer size for signal queue ππ‘--signals-bufsizeβ sets buffer size for signal queue ππ‘--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β maximum number of rpc slots (default:64) ππ’-L|--disable-loggingβ disables request logging π«π--flockβ locks the specified file before starting, exits if locked ππͺ--flock-waitβ locks the specified file before starting, waits if locked πβ³--flock2β locks the specified file after logging/daemon setup, exits if locked ππͺ--flock-wait2β locks the specified file after logging/daemon setup, waits if locked πβ³--pidfileβ creates pidfile (before privileges drop) ππ--pidfile2β creates pidfile (after privileges drop) ππ--safe-pidfileβ creates safe pidfile (before privileges drop) ππ--safe-pidfile2β creates safe pidfile (after privileges drop) ππ--chrootβchroot()to the specified directory π π--pivot-rootβpivot_root()to the specified directories (new_root and put_old must be separated with a space) ππ--pivot_rootβpivot_root()to the specified directories (new_root and put_old must be separated with a space) ππ--uidβ setuid to the specified user/uid π€π--gidβ setgid to the specified group/gid π₯π--add-gidβ adds the specified group id to the process credentials βπ₯--immediate-uidβ setuid to the specified user/uid IMMEDIATELY β‘π€--immediate-gidβ setgid to the specified group/gid IMMEDIATELY β‘π₯--no-initgroupsβ disables additional groups set viainitgroups()π«π₯--capβ sets process capability ποΈπ--unshareβunshare()part of the processes and puts it in a new namespace ππ--unshare2βunshare()part of the processes and puts it in a new namespace after rootfs change ππ--setns-socketβ exposes a unix socket returning namespace fds from/proc/self/nsππ--setns-socket-skipβ skips the specified entry when sending setns file descriptors βοΈπ--setns-skipβ skips the specified entry when sending setns file descriptors βοΈπ--setnsβ joins a namespace created by an external uWSGI instance ππ--setns-preopenβ opens/proc/self/nsas soon as possible and caches fds ππ--jailedβ marks the instance as jailed (forces the execution ofpost_jailhooks) π·οΈπ--reforkβfork()again after privileges drop. super useful for jailing systems, no cap π«Ά--re-forkβ same vibe as--refork:fork()again after privileges drop. jailing systems love it π¦--refork-as-rootβfork()again before privileges drop. still for jailing systems, bestie β¨--re-fork-as-rootβ yep, another alias:fork()again before privileges drop. jailing systems, you know the drill π--refork-post-jailβfork()again after jailing. jailing systems stay winning πΈ--re-fork-post-jailβ same as--refork-post-jail:fork()again after jailing. for jailing systems, fr fr π--hook-asapβ run the hook you specified as soon as possible. like, immediately, bestie β‘--hook-pre-jailβ run that hook before jailing. prep time, periodt π--hook-post-jailβ run that hook after jailing. clean up after yourself, queen π--hook-in-jailβ run that hook in jail after initialization. jail time but make it productive π--hook-as-rootβ run that hook before privileges drop. root energy, but careful π₯--hook-as-userβ run that hook after privileges drop. user vibes only π«Ά--hook-as-user-atexitβ run that hook before app exit and reload. last words, bestie π--hook-pre-appβ run that hook before app loading. get ready for the main character β¨--hook-post-appβ run that hook after app loading. app is up, celebrate π--hook-post-forkβ run that hook after each fork. every single time, no skips π--hook-acceptingβ run that hook after each worker enters the accepting phase. accepting era begins π--hook-accepting1β run that hook after the first worker enters the accepting phase. first one to the party π--hook-accepting-onceβ run that hook after each worker enters the accepting phase, but only once per-instance. special occasion vibes π₯³--hook-accepting1-onceβ run that hook after the first worker enters the accepting phase, once per instance. one and done, bestie π--hook-master-startβ run that hook when the Master starts. the boss is here π--hook-touchβ run that hook when the specified file is touched. syntax:<file> <action>. touch grass? no, touch file π±--hook-emperor-startβ run that hook when the Emperor starts. all hail the emperor π¦--hook-emperor-stopβ run that hook when the Emperor sends a stop message. stopping the empire, dramatic π--hook-emperor-reloadβ run that hook when the Emperor sends a reload message. reload the empire, slay π--hook-emperor-lostβ run that hook when the Emperor connection is lost. gone but not forgotten ποΈ--hook-as-vassalβ run that hook beforeexec()ing the vassal. vassal prep, periodt β¨--hook-as-emperorβ run that hook in the emperor after the vassal has been started. emperor watching over, iconic π--hook-as-muleβ run that hook in each mule. mule squad, assemble π΄--hook-as-gatewayβ run that hook in each gateway. gateway gang, rise up π--after-request-hookβ run the specified function/symbol after each request. aftercare, bestie π--after-request-callβ same as--after-request-hook: run that function/symbol after each request. you know the vibe π«Ά--exec-asapβ run the specified command as soon as possible. ASAP, no waiting β‘--exec-pre-jailβ run that command before jailing. prep work, queen π--exec-post-jailβ run that command after jailing. post-jail clarity β¨--exec-in-jailβ run that command in jail after initialization. jailhouse rock πΈ--exec-as-rootβ run that command before privileges drop. root access, careful π₯--exec-as-userβ run that command after privileges drop. user mode activated π«Ά--exec-as-user-atexitβ run that command before app exit and reload. exit interview, bestie π--exec-pre-appβ run that command before app loading. pre-game, let's go π--exec-post-appβ run that command after app loading. app is live, celebrate π--exec-as-vassalβ run that command beforeexec()ing the vassal. vassal business, fr fr π¦--exec-as-emperorβ run that command in the emperor after the vassal has been started. emperor's orders π--mount-asapβ mount filesystem as soon as possible. ASAP mounting, bestie β‘--mount-pre-jailβ mount filesystem before jailing. prep the mount πΈ--mount-post-jailβ mount filesystem after jailing. post-jail mount, slay π--mount-in-jailβ mount filesystem in jail after initialization. jail mount, iconic β¨--mount-as-rootβ mount filesystem before privileges drop. root mount, careful π₯--mount-as-vassalβ mount filesystem beforeexec()ing the vassal. vassal mount, periodt π¦--mount-as-emperorβ mount filesystem in the emperor after the vassal has been started. emperor mount π--umount-asapβ unmount filesystem as soon as possible. bye-bye mount, ASAP β‘--umount-pre-jailβ unmount filesystem before jailing. clean up before jail πΈ--umount-post-jailβ unmount filesystem after jailing. post-jail cleanup, bestie π--umount-in-jailβ unmount filesystem in jail after initialization. jail unmount, fr fr β¨--umount-as-rootβ unmount filesystem before privileges drop. root unmount, careful π₯--umount-as-vassalβ unmount filesystem beforeexec()ing the vassal. vassal unmount, periodt π¦--umount-as-emperorβ unmount filesystem in the emperor after the vassal has been started. emperor unmount π--wait-for-interfaceβ wait for the specified network interface to come up before running root hooks. patience, bestie π§--wait-for-interface-timeoutβ set the timeout for--wait-for-interface. don't wait forever β³--wait-interfaceβ same as--wait-for-interface: wait for that network interface before running root hooks. waiting era π--wait-interface-timeoutβ set the timeout for--wait-for-interface(the alias version). time's up β°--wait-for-ifaceβ wait for the specified network interface to come up before running root hooks. iface vibes π«Ά--wait-for-iface-timeoutβ set the timeout for--wait-for-interface(iface edition). tick tock β³--wait-ifaceβ wait for the specified network interface to come up before running root hooks. iface, iface, baby π--wait-iface-timeoutβ set the timeout for--wait-for-interface(the iface alias). timeout, bestie β°--wait-for-fsβ wait for the specified filesystem item to appear before running root hooks. filesystem waiting game πΈ--wait-for-fileβ wait for the specified file to appear before running root hooks. file, where you at? π--wait-for-dirβ wait for the specified directory to appear before running root hooks. directory, show up β¨--wait-for-mountpointβ wait for the specified mountpoint to appear before running root hooks. mountpoint, please π₯Ί--wait-for-fs-timeoutβ set the timeout for--wait-for-fs/file/dir. timeout for the waiting game β³--wait-for-socketβ wait for the specified socket to be ready before loading apps. socket, are you there? π--wait-for-socket-timeoutβ set the timeout for--wait-for-socket. socket timeout, bestie β°--call-asapβ call the specified function as soon as possible. ring ring, ASAP π--call-pre-jailβ call that function before jailing. pre-jail call π--call-post-jailβ call that function after jailing. post-jail call, slay π--call-in-jailβ call that function in jail after initialization. jail call, iconic β¨--call-as-rootβ call that function before privileges drop. root call, careful π₯--call-as-userβ call that function after privileges drop. user call, periodt π«Ά--call-as-user-atexitβ call that function before app exit and reload. last call, bestie π--call-pre-appβ call that function before app loading. pre-app call, get ready π--call-post-appβ call that function after app loading. app loaded, call made π--call-as-vassalβ call the specifiedfunction()beforeexec()ing the vassal. vassal call, fr fr π¦--call-as-vassal1β call the specifiedfunction(char *)beforeexec()ing the vassal. vassal call with a char pointer, fancy π--call-as-vassal3β call the specifiedfunction(char *, uid_t, gid_t)beforeexec()ing the vassal. vassal call with all the args, periodt β¨--call-as-emperorβ call the specifiedfunction()in the emperor after the vassal has been started. emperor call π--call-as-emperor1β call the specifiedfunction(char *)in the emperor after the vassal has been started. emperor call with a string, slay π--call-as-emperor2β call the specifiedfunction(char *, pid_t)in the emperor after the vassal has been started. emperor call with pid, iconic π¦--call-as-emperor4β call the specifiedfunction(char *, pid_t, uid_t, gid_t)in the emperor after the vassal has been started. emperor call with everything, periodt π--iniβ load config from an ini file. old school but valid π-y|--yamlβ load config from a yaml file. yaml era, bestie β¨-y|--ymlβ same as-y|--yaml: load config from a yaml file. yml, yaml, same vibe π«Ά-j|--jsonβ load config from a json file. json, iconic π-j|--jsβ same as-j|--json: load config from a json file. js, json, whatever π--weightβ weight of the instance. used by clustering/lb/subscriptions. put some weight on it πͺ--auto-weightβ set weight of the instance automatically. used by clustering/lb/subscriptions. auto-weight, slay β¨--no-serverβ force no-server mode. no server, no problem π--command-modeβ force command mode. command mode activated π--no-defer-acceptβ disable deferred-accept on sockets. no deferring, bestie π«--tcp-nodelayβ enable TCP NODELAY on each request. no delay, we move fast β‘--so-keepaliveβ enable TCP KEEPALIVEs. keep it alive, periodt π«Ά--so-send-timeoutβ setSO_SNDTIMEO. send timeout, fr fr β°--socket-send-timeoutβ setSO_SNDTIMEO. same as above, socket send timeout π--so-write-timeoutβ setSO_SNDTIMEO. write timeout, bestie β¨--socket-write-timeoutβ setSO_SNDTIMEO. socket write timeout, you know the vibe π¦--socket-sndbufβ setSO_SNDBUF. socket send buffer, iconic πΈ--socket-rcvbufβ setSO_RCVBUF. socket receive buffer, slay π--shutdown-socketsβ force callingshutdown()in addition toclose()when sockets are destroyed. shutdown and close, double trouble π--limit-asβ limit processes address space/vsz. keep it in check, bestie π--limit-nprocβ limit the number of spawnable processes. nproc limit, periodt π«--reload-on-asβ reload if address space is higher than specified megabytes. too much space, reload time π--reload-on-rssβ reload if rss memory is higher than specified megabytes. rss too high, reload, slay π--evil-reload-on-asβ force the master to reload a worker if its address space is higher than specified megabytes. evil reload, dramatic π--evil-reload-on-rssβ force the master to reload a worker if its rss memory is higher than specified megabytes. evil rss reload, iconic π₯--mem-collector-freqβ set the memory collector frequency when evil reloads are in place. collect that memory, bestie π§Ή--reload-on-fdβ reload if the specified file descriptor is ready. fd ready, reload, periodt π--brutal-reload-on-fdβ brutal reload if the specified file descriptor is ready. brutal, no mercy π--ksmβ enable Linux KSM. KSM, slay π§--pcre-jitβ enable pcre jit (if available). jit, if you can, bestie β¨--never-swapβ lock all memory pages avoiding swapping. no swap, no cap π--touch-reloadβ reload uWSGI if the specified file is modified/touched. touch it, reload it π--touch-workers-reloadβ trigger reload of (only) workers if the specified file is modified/touched. workers only, periodt π«Ά--touch-mules-reloadβ reload mules if the specified file is modified/touched. mules reload, iconic π΄--touch-spoolers-reloadβ reload spoolers if the specified file is modified/touched. spoolers reload, slay β¨--touch-chain-reloadβ trigger chain reload if the specified file is modified/touched. chain reaction, bestie βοΈ--touch-logrotateβ trigger logrotation if the specified file is modified/touched. logrotate, touch it π--touch-logreopenβ trigger log reopen if the specified file is modified/touched. reopen those logs, periodt π--touch-execβ run command when the specified file is modified/touched. syntax:file command. touch and run, iconic π--touch-signalβ signal when the specified file is modified/touched. syntax:file signal. touch and signal, slay π¦--fs-reloadβ bestie, this one watches a filesystem object and does a graceful reload the moment it gets modified. soft reset energy. π¦--fs-brutal-reloadβ same vibe check, but the reload is brutal instead of graceful. no chill. π--fs-signalβ when that filesystem object changes, it raises a uwsgi signal. syntax:file signal. very "text me when you're done" of it. β¨--check-mountpointβ if a filesystem is no more reachable, this destroys the instance. it's giving reliable Fuse management, fr fr.--mountpoint-checkβ literally the same thing as--check-mountpoint: destroy the instance if a filesystem is no more reachable. useful for reliable Fuse management. twins. π―--check-mountβ bestie it's the same again: destroy the instance if a filesystem is no more reachable. useful for reliable Fuse management. π--mount-checkβ and again! destroy the instance if a filesystem is no more reachable. useful for reliable Fuse management. iconic quadruple threat. π--propagate-touchβ the over-engineering option for systems with flaky signal management. she's extra and she knows it. π
--limit-postβ limit the request body. that's it, that's the whole thing. π--no-orphansβ automatically kill workers if the master dies. > heads up bestie: this can be dangerous for availability. so like, read the room before enabling it. π--prioβ set processes/threads priority. β--cpu-affinityβ set cpu affinity. pin those threads down, periodt. π--post-bufferingβ set the size in bytes after which it'll buffer to disk instead of memory. π¦--post-buffering-bufsizeβ set the buffer size forread()in post buffering mode. πΈ--body-read-warningβ sets the amount of allowed memory allocation (in megabytes) for the request body before it starts printing a warning. the gentle "girl... π" threshold.--upload-progressβ enable creation of.jsonfiles in the specified directory while a file upload is happening. progress updates, slay. β¨--no-default-appβ do not fallback to the default app. no safety net, we die like women. π--manage-script-nameβ automatically rewriteSCRIPT_NAMEandPATH_INFO. π§--ignore-script-nameβ ignoreSCRIPT_NAME. okay and? ignored. π--catch-exceptionsβ report the exception as http output. > bestie, this is discouraged β use it only for testing. do not ship this to prod i'm begging. π--reload-on-exceptionβ reload a worker whenever an exception is raised. spicy but valid. π₯--reload-on-exception-typeβ reload a worker when a specific exception type is raised. π―--reload-on-exception-valueβ reload a worker when a specific exception value is raised. π--reload-on-exception-reprβ reload a worker when a specific exception type+value (language-specific) is raised. the full combo meal. π--exception-handlerβ add an exception handler. π«Ά
--enable-metricsβ enable the metrics subsystem. numbers girlies rise. π--metricβ add a custom metric. β¨--metric-thresholdβ add a metric threshold/alarm. π¨--metric-alarmβ add a metric threshold/alarm. same thing, different name, we love a repackage. π--alarm-metricβ add a metric threshold/alarm. third time's the charm bestie. π--metrics-dirβ export metrics as text files to the specified directory. πΈ--metrics-dir-restoreβ restore the last value taken from the metrics dir. memory unlocked. π§--metric-dirβ export metrics as text files to the specified directory. (yes this is the singular version, no we don't know why either, it's giving brand consistency) π¦--metric-dir-restoreβ restore the last value taken from the metrics dir. π--metrics-no-coresβ disable generation of cores-related metrics. π--udpβ run the udp server on the specified address. π‘--statsβ enable the stats server on the specified address. β¨--stats-serverβ enable the stats server on the specified address. same energy, different spelling. π--stats-httpβ prefix the stats server json output with http headers. π--stats-minifiedβ minify the statistics json output. skinny legend. πΈ--stats-minβ minify the statistics json output. her nickname. π¦--stats-pushβ push the stats json to the specified destination. yeet. π--stats-pusher-default-freqβ set the default frequency of stats pushers. β°--stats-pushers-default-freqβ set the default frequency of stats pushers. (plural version, same deal) π--stats-no-coresβ disable generation of cores-related stats. π«--stats-no-metricsβ do not include metrics in the stats output. π--multicastβ subscribe to the specified multicast group. π«Ά--multicast-ttlβ set multicast ttl. β--multicast-loopβ set multicast loop (default1). π--master-fifoβ enable the master fifo. π--notify-socketβ enable the notification socket. π--subscription-notify-socketβ set the notification socket for subscriptions. β¨
--legionβ become a member of a legion. main character joining the group chat. π--legion-mcastβ become a member of a legion (shortcut for multicast). π¦--legion-nodeβ add a node to a legion. πΈ--legion-freqβ set the frequency of legion packets. β±οΈ--legion-toleranceβ set the tolerance of the legion subsystem. π--legion-death-on-lord-errorβ declare itself as a dead node for the specified amount of seconds if one of the lord hooks fails. dramatic exit, love that for her. π--legion-skew-toleranceβ set the clock skew tolerance of the legion subsystem (default30seconds). β°--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 the max size of the legion scroll buffer. π--legion-scroll-list-max-sizeβ set the max size of the legion scroll list buffer. π--subscriptions-sign-checkβ set the digest algorithm and certificate directory for the secured subscription system. π--subscriptions-sign-check-toleranceβ set the maximum tolerance (in seconds) of clock skew for the secured subscription system. β³--subscriptions-sign-skip-uidβ skip the signature check for the specified uid when using unix sockets credentials. π--subscriptions-credentials-checkβ add a directory to search for subscriptions key credentials. π--subscriptions-use-credentialsβ enable management ofSCM_CREDENTIALSin subscriptions UNIX sockets. πͺͺ--subscription-algoβ set the load balancing algorithm for the subscription system. βοΈ--subscription-dotsplitβ try to fallback to the next part (dot based) in the subscription key. π―--subscribe-toβ subscribe to the specified subscription server. π«Ά--stβ subscribe to the specified subscription server. the short king. π--subscribeβ subscribe to the specified subscription server. β¨--subscribe2β subscribe to the specified subscription server using advanced keyval syntax. the glow-up sequel. π--subscribe-freqβ send a subscription announce at the specified interval. π£--subscription-toleranceβ set tolerance for subscription servers. π--unsubscribe-on-graceful-reloadβ force the unsubscribe request even during a graceful reload. no loose ends. π§Ή--start-unsubscribedβ configure subscriptions but do not send them (useful with master fifo). lowkey lurking. π--subscribe-with-modifier1β force the specified modifier1 when subscribing. ποΈ
--snmpβ enable the embedded snmp server. π--snmp-communityβ set the snmp community string. π€--ssl-verboseβ be verbose about SSL errors. spill the tea, ssl. β--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 specified directory and create an sni/ssl context on demand. πͺ--sni-dir-ciphersβ set ssl ciphers for thesni-diroption. π--ssl-enable3β enable SSLv3. > bestie this is insecure. like, genuinely. π--ssl-enable-sslv3β enable SSLv3. > also insecure. same warning, different flag name. π--ssl-enable-tlsv1β enable TLSv1. > insecure bestie. why are we here. π--ssl-optionβ set a raw ssl option (numeric value). π’--sni-regexpβ add an SNI-governed SSL context (the key is a regexp). π§--ssl-tmp-dirβ store ssl-related temp files in the specified directory. ποΈ
--check-intervalβ set the interval (in seconds) of master checks. β²οΈ--forkbomb-delayβ sleep for the specified number of seconds when a forkbomb is detected. nap time, but make it a crisis. π΄--binary-pathβ force binary path. π--privileged-binary-patchβ patch the uwsgi binary with a new command (before privileges drop). π©Ή--unprivileged-binary-patchβ patch the uwsgi binary with a new command (after privileges drop). π©Ή--privileged-binary-patch-argβ patch the uwsgi binary with a new command and arguments (before privileges drop). π οΈ--unprivileged-binary-patch-argβ patch the uwsgi binary with a new command and arguments (after privileges drop). π οΈ--asyncβ enable async mode with the specified number of cores. β‘--max-fdβ set the maximum number of file descriptors. > requires root privileges bestie, don't forget. π--logtoβ set logfile/udp address. π--logto2β log to the specified file or udp address after privileges drop. πͺ--log-formatβ set an advanced format for request logging. π¨--logformatβ set an advanced format for request logging. same thing, no dash, still iconic. β¨--logformat-strftimeβ apply strftime to logformat output. π°οΈ--log-format-strftimeβ apply strftime to logformat output. π--logfile-chownβ chown logfiles. π§βπ³--logfile-chmodβ chmod logfiles. π§--log-syslogβ log to syslog. π»--log-socketβ send logs to the specified socket. π--req-loggerβ set/append a request logger. π«Ά--logger-reqβ set/append a request logger. her other name. π--loggerβ set/append a logger. π--logger-listβ list enabled loggers. ποΈ--loggers-listβ list enabled loggers. plural, same list. πΈ--threaded-loggerβ offload log writing to a thread. multitasking queen. π§΅--log-encoderβ add an item in the log encoder chain. βοΈ--log-req-encoderβ add an item in the log req encoder chain. βοΈ--log-drainβ drain (do not show) log lines matching the specified regexp. blocked. π«--log-filterβ show only log lines matching the specified regexp. the opposite of draining, bestie. π--log-routeβ log to the specified named logger if the regexp applied on the logline matches. π¦--log-req-routeβ log requests to the specified named logger if the regexp applied on the logline matches. π¦--use-abortβ callabort()on segfault/fpe, which could be useful for generating a core dump. π₯--alarmβ create a new alarm. syntax:<alarm> <plugin:args>. β°--alarm-cheapβ use the main alarm thread rather than creating dedicated threads for curl-based alarms. budget-friendly alarm. πΈ
okay we're still deep in the flags bestie, buckle up, this stretch is long but every single one of these is real and they all matter π
--alarm-freqβ tunes the anti-loop alarm system (default 3 seconds) so it's not out here screaming at you constantly β¨--alarm-fdβ raises the specified alarm when an fd gets read (by default it reads 1 byte, set it to 8 for eventfd) π--alarm-segfaultβ raises the specified alarm when the segmentation fault handler fires π--segfault-alarmβ same thing, raises the specified alarm when the segmentation fault handler runs--alarm-backlogβ raises the specified alarm when the socket backlog queue is full π--backlog-alarmβ raises the specified alarm when the socket backlog queue is full--lq-alarmβ raises the specified alarm when the socket backlog queue is full--alarm-lqβ raises the specified alarm when the socket backlog queue is full--alarm-listen-queueβ raises the specified alarm when the socket backlog queue is full--listen-queue-alarmβ raises the specified alarm when the socket backlog queue is full--log-alarmβ raises the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>π₯--alarm-logβ raises the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>--not-log-alarmβ skips the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>π--not-alarm-logβ skips the specified alarm when a log line matches the specified regexp, syntax:<alarm>[,alarm...] <regexp>--alarm-listβ lists enabled alarms π--alarms-listβ lists enabled alarms--alarm-msg-sizeβ sets the max size of an alarm message (default 8192) β¨--log-masterβ delegates logging to the master process π--log-master-bufsizeβ sets the buffer size for the master logger; bigger log messages get truncated βοΈ--log-master-streamβ creates the master logpipe asSOCK_STREAMπΈ--log-master-req-streamβ creates the master requests logpipe asSOCK_STREAM--log-reopenβ reopens the log after reload π¦--log-truncateβ truncates the log on startup--log-maxsizeβ sets the maximum logfile size--log-backupnameβ sets the logfile name after rotation--logdateβ prefixes logs with a date or a strftime string π--log-dateβ prefixes logs with a date or a strftime string--log-prefixβ prefixes logs with a string--log-zeroβ logs responses without a body--log-slowβ logs requests slower than the specified number of milliseconds π’--log-4xxβ logs requests with a 4xx response--log-5xxβ logs requests with a 5xx response--log-bigβ logs requests bigger than the specified size--log-sendfileβ logs sendfile requests--log-ioerrorβ logs requests with io errors π--log-microsβ reports response time in microseconds instead of milliseconds β±οΈ--log-x-forwarded-forβ uses the ip from theX-Forwarded-Forheader instead ofREMOTE_ADDRπ--master-as-rootβ leaves the master process running as root π--drop-after-initβ runs the privileges drop after plugin initialization, superseded bydrop-after-apps--drop-after-appsβ runs the privileges drop after apps loading, superseded bymaster-as-root--force-cwdβ forces the initial working directory to the specified value--binshβ overrides/bin/sh(used by exec hooks, it always falls back to/bin/sh) π--chdirβ chdirs to the specified directory before apps loading--chdir2β chdirs to the specified directory after apps loading--lazyβ sets lazy mode (load apps in workers instead of master) π΄--lazy-appsβ loads apps in each worker instead of the master--cheapβ sets cheap mode (spawn workers only after the first request) πΈ--cheaperβ sets cheaper mode (adaptive process spawning)--cheaper-initialβ sets the initial number of processes to spawn in cheaper mode--cheaper-algoβ chooses the algorithm used for adaptive process spawning π§--cheaper-stepβ the number of additional processes to spawn at each overload--cheaper-overloadβ increases workers after the specified overload--cheaper-algo-listβ lists enabled cheapers algorithms π--cheaper-algos-listβ lists enabled cheapers algorithms--cheaper-listβ lists enabled cheapers algorithms--cheaper-rss-limit-softβ won'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, tries to stop workers--idleβ sets idle mode (puts uWSGI in cheap mode after inactivity) π€--die-on-idleβ shuts down uWSGI when idle β°οΈ--mountβ loads the application under a mountpoint--worker-mountβ loads the application under a mountpoint in the specified worker or after workers spawn--threadsβ runs each worker in prethreaded mode with the specified number of threads π§΅--thread-stacksizeβ sets threads stacksize--threads-stacksizeβ sets threads stacksize--thread-stack-sizeβ sets threads stacksize--threads-stack-sizeβ sets threads stacksize--vhostβ enables virtualhosting mode (based on theSERVER_NAMEvariable) π--vhost-hostβ enables virtualhosting mode (based on theHTTP_HOSTvariable)--routeβ adds a route π£οΈ--route-hostβ adds a route based on theHostheader--route-uriβ adds a route based onREQUEST_URI--route-qsβ adds a route based onQUERY_STRING--route-remote-addrβ adds a route based onREMOTE_ADDR--route-user-agentβ adds a route based onHTTP_USER_AGENT--route-remote-userβ adds a route based onREMOTE_USER--route-refererβ adds a route based onHTTP_REFERER--route-labelβ adds a routing label (for use with goto) π·οΈ--route-ifβ adds a route based on condition--route-if-notβ adds a route based on condition (negate version) π--route-runβ always runs the specified route action--final-routeβ adds a final route π--final-route-statusβ adds a final route for the specified status--final-route-hostβ adds a final route based on theHostheader--final-route-uriβ adds a final route based onREQUEST_URI--final-route-qsβ adds a final route based onQUERY_STRING--final-route-remote-addrβ adds a final route based onREMOTE_ADDR--final-route-user-agentβ adds a final route based onHTTP_USER_AGENT--final-route-remote-userβ adds a final route based onREMOTE_USER--final-route-refererβ adds a final route based onHTTP_REFERER--final-route-labelβ adds a final routing label (for use with goto) π·οΈ--final-route-ifβ adds a final route based on condition--final-route-if-notβ adds a final route based on condition (negate version) π--final-route-runβ always runs the specified final route action--error-routeβ adds an error route π¨--error-route-statusβ adds an error route for the specified status--error-route-hostβ adds an error route based on theHostheader--error-route-uriβ adds an error route based onREQUEST_URI--error-route-qsβ adds an error route based onQUERY_STRING--error-route-remote-addrβ adds an error route based onREMOTE_ADDR--error-route-user-agentβ adds an error route based onHTTP_USER_AGENT--error-route-remote-userβ adds an error route based onREMOTE_USER--error-route-refererβ adds an error route based onHTTP_REFERER--error-route-labelβ adds an error routing label (for use with goto) π·οΈ--error-route-ifβ adds an error route based on condition--error-route-if-notβ adds an error route based on condition (negate version) π--error-route-runβ always runs the specified error route action--response-routeβ adds a response route π--response-route-statusβ adds a response route for the specified status--response-route-hostβ adds a response route based on theHostheader--response-route-uriβ adds a response route based onREQUEST_URI--response-route-qsβ adds a response route based onQUERY_STRING--response-route-remote-addrβ adds a response route based onREMOTE_ADDR--response-route-user-agentβ adds a response route based onHTTP_USER_AGENT--response-route-remote-userβ adds a response route based onREMOTE_USER--response-route-refererβ adds a response route based onHTTP_REFERER--response-route-labelβ adds a response routing label (for use with goto) π·οΈ--response-route-ifβ adds a response route based on condition--response-route-if-notβ adds a response route based on condition (negate version) π--response-route-runβ always runs the specified response route action--router-listβ lists enabled routers π--routers-listβ lists enabled routers--error-page-403β adds an error page (html) for a managed 403 response--error-page-404β adds an error page (html) for a managed 404 response--error-page-500β adds an error page (html) for a managed 500 response--websockets-ping-freqβ sets the frequency (in seconds) of websockets automatic ping packets π--websocket-ping-freqβ sets the frequency (in seconds) of websockets automatic ping packets--websockets-pong-toleranceβ sets the tolerance (in seconds) of the websockets ping/pong subsystem--websocket-pong-toleranceβ sets the tolerance (in seconds) of the websockets ping/pong subsystem--websockets-max-sizeβ sets the max allowed size of websocket messages (in Kbytes, default 1024) π¦--websocket-max-sizeβ sets the max allowed size of websocket messages (in Kbytes, default 1024)--chunked-input-limitβ sets the max size of a chunked input part (default 1MB, in bytes) π§©--chunked-input-timeoutβ sets the default timeout for chunked input β³--clockβ sets a clock source π°οΈ--clock-listβ lists enabled clocks--clocks-listβ lists enabled clocks--add-headerβ automatically adds HTTP headers to the response β¨
and yes bestie there's still more coming, don't you dare close the tab π
--rem-headerβ bestie, this one just yeets a specified HTTP header right out of the response π--del-headerβ same energy, same job: automatically remove the specified HTTP header from the response--collect-headerβ stash a specified response header into a request var β¨ syntax goesheader var--response-header-collectβ literally the same thing: store the specified response header in a request var, syntaxheader var--pull-headerβ store that specified response header in a request var AND remove it from the response, double duty π syntax:header var--check-staticβ peek for static files in the directory you name πΈ--check-static-docrootβ check for static files in the requestedDOCUMENT_ROOT--static-checkβ yep, check for static files in the specified directory (twin of--check-static, no cap)--static-mapβ map a mountpoint onto 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 when doing staticfile checks--static-indexβ if someone asks for a directory, search for the file you specified instead π--static-safeβ skip security checks if the file lives under the path you give it (iykyk, be careful with this one)--static-cache-pathsβ drop resolved paths into the uWSGI cache for however many seconds you specify β±οΈ--static-cache-paths-nameβ use the cache you name for static paths--mimefileβ set the mime types file path (default/etc/mime.types)--mime-fileβ the exact same thing: set the 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'll go hunt for a gzip version π--static-gzip-allβ check for a gzip version of every single requested static file--static-gzip-dirβ check for a gzip version of all requested static files in the dir/prefix you name--static-gzip-prefixβ same vibes: 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 ext/suffix you give--static-gzip-suffixβ twin of the above: check for a gzip version of all requested static files with the specified ext/suffix--honour-rangeβ turn on support for the HTTPRangeheader π₯--offload-threadsβ set how many offload threads to spawn (per-worker, default0)--offload-threadβ same deal: set the number of offload threads to spawn (per-worker, default0)--file-serve-modeβ set the static file serving mode--fileserve-modeβ literally identical: set static file serving mode--disable-sendfileβ turn offsendfile()and just rely on boring oldread()/write()π--check-cacheβ check for response data in the specified cache (leave it empty for the default cache)--close-on-execβ set close-on-exec on connection sockets (could be required for spawning processes inside requests)--close-on-exec2β set close-on-exec on server sockets (could be required for spawning processes in requests)--modeβ set a uWSGI custom mode--envβ set an environment variable π--envdirβ load a daemontools compatible envdir--early-envdirβ load a daemontools compatible envdir ASAP β‘--unenvβ unset an environment variable--vacuumβ try to remove all of the generated file/sockets π§Ή--file-writeβ write the specified content to the specified file before privileges drop, syntaxfile=valueβοΈ--cgroupβ put the processes into the cgroup you name--cgroup-optβ set a value in the specified cgroup option--cgroup-dir-modeβ set permission for the cgroup directory (default is700)--namespaceβ run in a new namespace under the rootfs you specify π¦--namespace-keep-mountβ keep the mountpoint you name inside your namespace--nsβ run in a new namespace under the specified rootfs (same as--namespace)--namespace-netβ add a network namespace--ns-netβ add a network namespace (yep, the short twin)--enable-proxy-protocolβ enablePROXY1protocol support (only for http parsers)--reuse-portβ enable theREUSE_PORTflag on a socket (BSD only π)--tcp-fast-openβ enable theTCP_FASTOPENflag on TCP sockets with the qlen value you give--tcp-fastopenβ same thing: enableTCP_FASTOPENon TCP sockets with the specified qlen value--tcp-fast-open-clientβ usesendto(..., MSG_FASTOPEN, ...)instead ofconnect()if it's supported π«--tcp-fastopen-clientβ identical: usesendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported--zergβ attach to a zerg server πΎ--zerg-fallbackβ fall back to normal sockets if the zerg server isn't available--zerg-serverβ enable the zerg server on the UNIX socket you specify--cronβ add a cron task β°--cron2β add a cron task, but key=val syntax this time--unique-cronβ add a unique cron task--cron-harakiriβ set the max time (in seconds) we wait for a cron command to complete--legion-cronβ add a cron task that only runs when the instance is a lord of the specified legion π--cron-legionβ same as--legion-cron: 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β same vibe: add a unique cron task runnable only when the instance is a lord of the specified legion--loopβ pick the uWSGI loop engine π--loop-listβ list all the enabled loop engines--loops-listβ list enabled loop engines (same thing, extra s)--worker-execβ run the command you give as a worker--worker-exec2β run the specified command as a worker, but after thepost_forkhook--attach-daemonβ attach a command/daemon to the master process (heads up: the command has to NOT go into background) β οΈ--attach-control-daemonβ attach a command/daemon to the master process (the command has to not go in background), and when the daemon dies, the master dies too π--smart-attach-daemonβ 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-daemon, except the daemon only runs on the legion lord node--legion-smart-attach-daemonβ same as--smart-attach-daemon, but the daemon only runs on the legion lord node--legion-smart-attach-daemon2β same as--smart-attach-daemon2, but the daemon only runs on the legion lord node--daemons-honour-stdinβ don't swap the stdin of external daemons over to/dev/null--attach-daemon2β the keyval variant ofattach-daemon(it supports smart modes too) β¨--pluginsβ load uWSGI plugins π§©--pluginβ load uWSGI plugins (singular spelling, same job)--need-pluginsβ load uWSGI plugins, and exit on error--need-pluginβ load uWSGI plugins (exit on error), singular flavor--plugins-dirβ add a directory to the uWSGI plugin search path--plugin-dirβ add a directory to uWSGI plugin search path (same thing)--plugins-listβ list the enabled plugins--plugin-listβ list enabled plugins (identical)--autoloadβ try to automatically load plugins whenever unknown options show up--dlopenβ blindly load a shared library (no thoughts, just vibes)--allowed-modifiersβ a comma separated list of allowed modifiers--remap-modifierβ remap a 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(super 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 the uWSGI version β--response-headers-limitβ set the max response header size (default:64k)--wsgi-fileβ load a.wsgifile π--fileβ load a.wsgifile (same)--evalβ eval python code-w|--moduleβ load a WSGI module-w|--wsgiβ load a WSGI module (the other name for it)--callableβ set the default WSGI callable name-J|--testβ test a module import π§ͺ-H|--homeβ setPYTHONHOME/virtualenv-H|--virtualenvβ setPYTHONHOME/virtualenv-H|--venvβ setPYTHONHOME/virtualenv-H|--pyhomeβ setPYTHONHOME/virtualenv--py-programnameβ set the python program name--py-program-nameβ set python program name (same)--pythonpathβ add a directory (or glob) topythonpath--python-pathβ add directory (or glob) topythonpath(twin)--ppβ add a directory (or glob) topythonpath(short and sweet)--pymodule-aliasβ add a python alias module--post-pymodule-aliasβ add a python module alias after the uwsgi module is initialized--importβ import a python module--pyimportβ import a python module--py-importβ import a python module--python-importβ import a python module (yes bestie, four whole spellings of the same option, iconic)--shared-import,--shared-pyimport,--shared-py-import,--shared-python-importβ import a python module in all of the processes β¨--spooler-import,--spooler-pyimport,--spooler-py-import,--spooler-python-importβ import a python module in the spooler π--pyargvβ manually setsys.argvπ οΈ-O|--optimizeβ set python optimization level π§--pecanβ load a pecan config file π°--pasteβ load apaste.deployconfig file π--paste-loggerβ enable pastefileConfiglogger πͺ΅--web3β load a web3 app π--pumpβ load a pump app πͺ--wsgi-liteβ load a wsgi-lite app πͺΆ--ini-pasteβ load apaste.deployconfig file containing uwsgi section π--ini-paste-loggedβ load apaste.deployconfig file containing uwsgi section (load loggers too) π--reload-os-envβ force reload ofos.environat each request β»οΈ--no-siteβ do not import site module π«--pyshellβ run an interactive python shell in the uWSGI environment π--pyshell-oneshotβ run an interactive python shell in the uWSGI environment (one-shot variant) π―--python,--py,--pyrunβ run a python script in the uWSGI environment π--py-tracebackerβ enable the uWSGI python tracebacker π--py-auto-reload,--py-autoreload,--python-auto-reload,--python-autoreloadβ monitor python modules mtime to trigger reload (use only in development) πβ οΈ--py-auto-reload-ignoreβ ignore the specified module during auto-reload scan (can be specified multiple times) π--wsgi-env-behaviour,--wsgi-env-behaviorβ set the strategy for allocating/deallocating the WSGI env πΏ--start_response-nodelayβ send WSGI http headers as soon as possible (PEP violation) π--wsgi-strictβ try to be fully PEP compliant disabling optimizations π--wsgi-accept-buffer,--wsgi-accept-buffersβ accept CPython buffer-compliant objects as WSGI response in addition to string/bytes π§Ί--wsgi-disable-file-wrapperβ disablewsgi.file_wrapperfeature π«--python-versionβ report python version π--python-rawβ load a python file for managing raw requests π§΅--py-sharedareaβ create a sharedarea from a python bytearray object of the specified size π§--py-call-osafterforkβ enable child processes running cpython to trap OS signals π‘--py-call-uwsgi-fork-hooksβ call pre and post hooks when uswgi forks to update the internal interpreter state of CPython πͺ--python-worker-overrideβ override worker with the specified python script π--py-executable,--py-sys-executableβ overridesys.executablevalue π
π That's the whole page, bestie. Source: uwsgi_python312, version 2.0.24-debian, dated April 2024. Now go be iconic with your options π
β¨
π¦ where this page comes from
- ubuntu noble: uwsgi-plugin-python3 2.0.24-2ubuntu10 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms