UWSGI_GCCGO(1)
๐ uwsgi_gccgo ๐
okay bestie, welcome to the User Commands corner of the manual, this is the page for uwsgi_gccgo and honestly? it's giving legendary. โจ
๐ธ NAME ๐ธ
uwsgi_gccgo โ a fast (pure C), self-healing, developer-friendly WSGI server ๐ซถ
no cap, that's the whole pitch. pure C. fast. heals itself. loves developers. icon behavior fr fr ๐
๐ SYNOPSIS ๐
uwsgi-core [options...]
literally just the binary and then however many options your heart desires ๐
โจ DESCRIPTION โจ
okay so here's the thing โ this whole section is basically one giant stack of options and every single one of them is listed below. no skipping, no summarizing, we're going all the way down. grab a snack, bestie ๐
๐ sockets & protocols (the "where do i listen" era)
-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, locking & harakiri (the "keep it alive" chapter)
-p,--processesโ spawn the specified number of workers/processes ๐ฏ-p,--workersโ spawn the specified number of workers/processes ๐ฏ--thunder-lockโ serialize accept() 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 ๐ด๐ก๏ธ
๐ config loading (feeding the server its lore)
-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 0๏ธโฃ--skip-atexitโ skip atexit hooks (ignored by the master) ๐ช--skip-atexit-teardownโ skip atexit teardown (ignored by the master) ๐งน
๐ placeholders, custom options & the opt-logic era
-S,--setโ set a placeholder or an option ๐ท๏ธ--set-placeholderโ set a placeholder ๐ท๏ธ--set-phโ set a placeholder ๐ท๏ธ--getโ print the specified option value and exit ๐จ๏ธ--declare-optionโ declare a new uWSGI custom option ๐ข--declare-option2โ declare a new uWSGI custom option (non-immediate) ๐ข--resolveโ place the result of a dns query in the specified placeholder, sytax: placeholder=name (immediate option) ๐--forโ (opt logic) for cycle ๐--for-globโ (opt logic) for cycle (expand glob) ๐--for-timesโ (opt logic) for cycle (expand the specified num to a list starting from 1) ๐ข--for-readlineโ (opt logic) for cycle (expand the specified file to a list of lines) ๐--endforโ (opt logic) end for cycle ๐--end-forโ (opt logic) end for cycle ๐--if-optโ (opt logic) check for option โ--if-not-optโ (opt logic) check for option โ--if-envโ (opt logic) check for environment variable ๐ฑ--if-not-envโ (opt logic) check for environment variable ๐ฑ--ifenvโ (opt logic) check for environment variable ๐ฑ--if-reloadโ (opt logic) check for reload ๐--if-not-reloadโ (opt logic) check for reload ๐--if-hostnameโ (opt logic) check for hostname ๐--if-not-hostnameโ (opt logic) check for hostname ๐--if-hostname-matchโ (opt logic) try to match hostname against a regular expression ๐งฌ--if-not-hostname-matchโ (opt logic) try to match hostname against a regular expression ๐งฌ--if-existsโ (opt logic) check for file/directory existence ๐--if-not-existsโ (opt logic) check for file/directory existence ๐--ifexistsโ (opt logic) check for file/directory existence ๐--if-pluginโ (opt logic) check for plugin ๐งฉ--if-not-pluginโ (opt logic) check for plugin ๐งฉ--ifpluginโ (opt logic) check for plugin ๐งฉ--if-fileโ (opt logic) check for file existence ๐--if-not-fileโ (opt logic) check for file existence ๐--if-dirโ (opt logic) check for directory existence ๐--if-not-dirโ (opt logic) check for directory existence ๐--ifdirโ (opt logic) check for directory existence ๐--if-directoryโ (opt logic) check for directory existence ๐--endifโ (opt logic) end if ๐--end-ifโ (opt logic) end if ๐--blacklistโ set options blacklist context ๐ซ--end-blacklistโ clear options blacklist context ๐ซ--whitelistโ set options whitelist context โ--end-whitelistโ clear options whitelist context โ
๐ฉน write errors & sigpipe (the "stop screaming" section)
--ignore-sigpipeโ do not report (annoying) SIGPIPE ๐คซ--ignore-write-errorsโ do not report (annoying) write()/writev() errors ๐คซ--write-errors-toleranceโ set the maximum number of allowed write errors (default: no tolerance) ๐งฎ--write-errors-exception-onlyโ only raise an exception on write errors giving control to the app itself ๐ฎ--disable-write-exceptionโ disable exception generation on write()/writev() ๐ซ
๐งต 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, control & inspection
-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 & limits (the numbers bestie)
-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 (stub option this is true by default) ๐งต--no-threads-waitโ do not wait for threads cancellation on quit/reload ๐ช--auto-procnameโ automatically set processes name to something meaningful ๐ท๏ธ--procname-prefixโ add a prefix to the process names ๐ท๏ธ--procname-prefix-spacedโ add a spaced prefix to the process names ๐ท๏ธ--procname-appendโ append a string to process names ๐ท๏ธ--procnameโ set process names ๐ท๏ธ--procname-masterโ set master process name ๐ท๏ธ
๐ app loading & the master
-i,--single-interpreterโ do not use multiple interpreters (where available) 1๏ธโฃ--need-appโ exit if no app can be loaded ๐ค-M,--masterโ enable master process ๐--honour-stdinโ do not remap stdin to /dev/null ๐ซถ
๐ฐ the Emperor (yes, really, it's 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 ๐ง
okay that's part 1 of 6 bestie, and there is SO much more coming โ don't go anywhere ๐
okay bestie, deep breath, hydrate, we're still in the option mines โ๏ธโจ but honestly? this part is kinda iconic. Emperor stuff, caches, spoolers, namespaces โ it's giving systems programming main character energy fr fr.
--emperor-pidfileโ drop the Emperor's pid into the file you name. That's it, that's the whole job ๐ซถ--emperor-tyrantโ flip the Emperor into Tyrant mode. yes it's called that. no we didn't name it.--emperor-tyrant-nofollowโ in Tyrant mode, when it's checking uid/gid, do not follow symlinks. don't get tricked by a sneaky link, bestie ๐ซ๐--emperor-statsโ run the Emperor stats server.--emperor-stats-serverโ run the Emperor stats server. (same thing, different name, they're twins ๐ )--early-emperorโ spawn the emperor as soon as possible. impatient king behavior ๐--emperor-broodlordโ run the emperor in BroodLord mode. yes, BroodLord. we love a dramatic name.--emperor-throttleโ set the throttling level, in milliseconds, for vassals that are acting up. default is1000. time-out for misbehaving children ๐ค--emperor-max-throttleโ set the max throttling level, in milliseconds, for bad-behaving vassals. default is3 minutes. so the naughty corner has a ceiling.--emperor-magic-execโ if a vassal's config file has the executable bit set, prefix it withexec://. magic โจ--emperor-on-demand-extensionโ go looking for a text file named<vassal name><extension>that contains the on demand socket name.--emperor-on-demand-extโ same deal, shorter name. searches for a text file (vassal name + extension) holding the on demand socket name.--emperor-on-demand-directoryโ turns on on demand mode and binds to a unix socket inside the directory you give, named like the vassal+ .socket.--emperor-on-demand-dirโ the abbreviated twin of the above. same behavior: on demand mode, unix socket in your directory, named<vassal> + .socket.--emperor-on-demand-execโ use the output of the command you specify as the on demand socket name. the vassal name gets passed in as the only argument.--emperor-extra-extensionโ lets the Emperor accept the extension you name. vassals with it get called with--config.--emperor-extra-extโ the short-name version: allow the given extension in the Emperor, vassal invoked with--config.--emperor-no-blacklistโ kill the Emperor blacklisting subsystem. no more naughty list ๐ซ๐--emperor-use-cloneโ useclone()instead offork(), passing along theunshare()flags you specify.--emperor-graceful-shutdownโ during ragnarok, let the vassals go out with a graceful shutdown. respectful. ๐ธ--emperor-capโ set the vassals' capability.--vassals-capโ set the vassals' capability. (yes, same as above, this page really said "here's three spellings, pick your fave")--vassal-capโ set the vassals' capability. third one. collect the whole set ๐--imperial-monitor-listโ list the imperial monitors that are enabled.--imperial-monitors-listโ list the enabled imperial monitors. plural, same energy.--vassals-inheritโ add config templates into the vassals' config. this one uses--inherit.--vassals-includeโ include config templates into the vassals' config. this one uses--includeinstead of--inherit.--vassals-inherit-beforeโ add config templates to the vassals' config using--inherit, and it parses before the vassal file.--vassals-include-beforeโ include config templates into the vassals' config using--includeinstead of--inherit, parsed before the vassal file.--vassals-start-hookโ run your command before each vassal starts up. hype person for every vassal ๐ฃ--vassals-stop-hookโ run your command after a vassal dies.--vassal-sosโ when a vassal is overloaded, it asks the emperor for reinforcement. SOS bestie, send help ๐--vassal-sos-backlogโ ask the emperor for SOS when the backlog queue has more items than the value you set.--vassals-setโ automatically--setthe option you name for every single vassal. mass apply, slay.--vassal-setโ automatically set the specified option (via--set) for every vassal. singular spelling, same power.--heartbeatโ announce healthiness to the emperor. "i'm alive!!" ๐--reload-mercyโ the max time, in seconds, that we wait for workers and other processes to die during reload/shutdown.--worker-reload-mercyโ the max time, in seconds, that a worker is allowed to take to reload/shutdown. default is60.--mule-reload-mercyโ the max time, in seconds, that a mule is allowed to take to reload/shutdown. default is60.--exit-on-reloadโ force an exit even if a reload was requested. it said no and meant it ๐ช--die-on-termโ onSIGTERM, exit instead of doing a brutal reload.--force-gatewayโ force the first registered gateway to spawn without a master.-h,--helpโ show this help.-h,--usageโ show this help. (yep,-hdoes both, it's a multitasker ๐ )--print-symโ print the content of the binary symbol you specify.--print-symbolโ print the content of the specified binary symbol. long-form twin.-r,--reaperโ callwaitpid(-1,...)after each request to clear out zombies. ๐ง no undead processes on our watch.-R,--max-requestsโ reload workers after the specified amount of managed requests.--max-requests-deltaโ add(worker_id * delta)to themax_requestsvalue of each worker.--min-worker-lifetimeโ number of seconds a worker has to run before it can be reloaded. default is10.--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 the internal sockets timeout.--no-fd-passingโ disable file descriptor passing.--locksโ create the number of shared locks you specify.--lock-engineโ set the lock engine.--ftokโ set the ipcsem key viaftok()so you dodge duplicates.--persistent-ipcsemโ do not remove ipcsem's on shutdown. they stay. periodt.-A,--sharedareaโ create a raw shared memory area of the specified number of pages. note: it supports keyval too.--safe-fdโ do not close the file descriptor you specify.--fd-safeโ do not close the specified file descriptor. same thing, flipped name, we love that for us.--cacheโ create a shared cache containing the given elements.--cache-blocksizeโ set the cache blocksize.--cache-storeโ enable a persistent cache to disk. it survives ๐พ--cache-store-syncโ set how often the persistent cache syncs.--cache-no-expireโ disable the auto sweep of expired items.--cache-expire-freqโ set how often the cache sweeper scans. default is3 seconds.--cache-report-freed-itemsโ constantly report each cache item the sweeper frees. > use only for debug, bestie, this one is loud.--cache-udp-serverโ bind the cache udp server to the socket you specify. it's used only for set/update/delete.--cache-udp-nodeโ send cache update/deletion over to the cache udp server you name.--cache-syncโ copy the entire content of another uWSGI cache server when the server starts up.--cache-use-last-modifiedโ update thelast_modified_attimestamp on every cache item modification. default is disabled.--add-cache-itemโ add an item into the cache.--load-file-in-cacheโ load a static file into the cache.--load-file-in-cache-gzipโ load a static file into the cache, with gzip compression. ๐๏ธโจ--cache2โ create a new generation shared cache. keyval syntax.--queueโ enable the shared queue.--queue-blocksizeโ set the queue blocksize.--queue-storeโ enable a persistent queue to disk.--queue-store-syncโ set how often the persistent queue syncs.-Q,--spoolerโ run a spooler on the directory you specify.--spooler-externalโ map spooler requests onto a spooler directory that's managed by an external instance.--spooler-orderedโ try to order how spooler tasks get executed. we're trying our best okay ๐ญ--spooler-chdirโchdir()into the specified directory before each spooler task.--spooler-processesโ set the number of processes for spoolers.--spooler-quietโ don't be verbose about spooler tasks. shhh ๐คซ--spooler-max-tasksโ set the maximum number of tasks to run before recycling a spooler.--spooler-harakiriโ set the harakiri timeout for spooler tasks.--spooler-frequencyโ set the spooler frequency.--spooler-freqโ set the spooler frequency. the short one. same vibe.--muleโ add a mule. ๐ด--mulesโ add the specified number of mules. herd behavior.--farmโ add a mule farm. yes, a farm of mules. the theme is committed.--mule-msg-sizeโ set the mule message buffer size.--signalโ send a uwsgi signal to a server.--signal-bufsizeโ set the buffer size for the signal queue.--signals-bufsizeโ set the buffer size for the signal queue. plural spelling, same buffer.--signal-timerโ add a timer. syntax:<signal> <seconds>.--timerโ add a timer. syntax:<signal> <seconds>. (short name, same timer)--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.-L,--disable-loggingโ disable request logging.--flockโ lock the specified file before starting. if it's already locked, exit. ๐--flock-waitโ lock the specified file before starting, and if it's locked, wait instead of bailing.--flock2โ lock the specified file after logging/daemon setup. exit if it's locked.--flock-wait2โ lock the specified file after logging/daemon setup, and wait if it's locked.--pidfileโ create a pidfile. this happens before privileges drop.--pidfile2โ create a pidfile. this one happens after privileges drop.--safe-pidfileโ create a safe pidfile, before privileges drop.--safe-pidfile2โ create a safe pidfile, after privileges drop.--chrootโchroot()into the directory you specify.--pivot-rootโpivot_root()into the directories you specify.new_rootandput_oldmust be separated with a space.--pivot_rootโpivot_root()into the specified directories. again:new_rootandput_oldseparated by a space. underscores, same option.--uidโsetuidto the user/uid you specify.--gidโsetgidto the group/gid you specify.--add-gidโ add the group id you specify to the process credentials.--immediate-uidโsetuidto the specified user/uid IMMEDIATELY. no waiting, no queue, right now.--immediate-gidโsetgidto the specified group/gid IMMEDIATELY.--no-initgroupsโ disable the additional groups that get set viainitgroups().--capโ set the process capability.--unshareโunshare()part of the processes and drop it into a new namespace. ๐ซง--unshare2โunshare()part of the processes into a new namespace, but after the rootfs change.--setns-socketโ expose a unix socket that returns namespace fds from/proc/self/ns.--setns-socket-skipโ skip the entry you name when sending setns file descriptors.--setns-skipโ skip the specified entry when sending setns file descriptors. short-name twin.--setnsโ join a namespace that was created by an external uWSGI instance.--setns-preopenโ open/proc/self/nsas soon as possible and cache the fds. early bird gets the namespace ๐ฆ--jailedโ marks this instance as jailed, which forces thepost_jailhooks to actually run ๐--reforkโ does afork()again after the privileges drop. Super handy for jailing systems ๐ง--re-forkโ same thing bestie:fork()again after privileges drop. Useful for jailing systems.--refork-as-rootโfork()again but before the privileges drop this time. Useful for jailing systems โจ--re-fork-as-rootโ identical energy:fork()again before privileges drop. Useful for jailing systems.--refork-post-jailโfork()again after jailing. Useful for jailing systems ๐ซถ--re-fork-post-jailโ yep, the twin:fork()again after jailing. Useful for jailing systems.--hook-asapโ runs the hook you specify as soon as possible, like literally the moment it can ๐--hook-pre-jailโ runs the specified hook before jailing.--hook-post-jailโ runs the specified hook after jailing.--hook-in-jailโ runs the specified hook inside the jail, after initialization.--hook-as-rootโ runs the specified hook before the privileges drop.--hook-as-userโ runs the specified hook after the privileges drop.--hook-as-user-atexitโ runs the specified hook before app exit and reload ๐ธ--hook-pre-appโ runs the specified hook before app loading.--hook-post-appโ runs the specified hook after app loading.--hook-post-forkโ runs the specified hook after each fork ๐--hook-acceptingโ runs the specified hook after each worker enters the accepting phase.--hook-accepting1โ runs the specified hook after the first worker enters the accepting phase.--hook-accepting-onceโ runs the specified hook after each worker enters the accepting phase, but once per-instance.--hook-accepting1-onceโ runs the specified hook after the first worker enters the accepting phase, once per instance.--hook-master-startโ runs the specified hook when the Master starts up ๐--hook-touchโ runs the specified hook whenever the file you name gets touched. Syntax:<file> <action>๐--hook-emperor-startโ runs the specified hook when the Emperor starts.--hook-emperor-stopโ runs the specified hook when the Emperor sends a stop message.--hook-emperor-reloadโ runs the specified hook when the Emperor sends a reload message.--hook-emperor-lostโ runs the specified hook when the Emperor connection is lost ๐--hook-as-vassalโ runs the specified hook beforeexec()ing the vassal.--hook-as-emperorโ runs the specified hook in the emperor after the vassal has been started.--hook-as-muleโ runs the specified hook in each mule.--hook-as-gatewayโ runs the specified hook in each gateway.--after-request-hookโ runs the specified function/symbol after each request.--after-request-callโ runs the specified function/symbol after each request.--exec-asapโ runs the specified command as soon as possible โก--exec-pre-jailโ runs the specified command before jailing.--exec-post-jailโ runs the specified command after jailing.--exec-in-jailโ runs the specified command in jail after initialization.--exec-as-rootโ runs the specified command before the privileges drop.--exec-as-userโ runs the specified command after the privileges drop.--exec-as-user-atexitโ runs the specified command before app exit and reload.--exec-pre-appโ runs the specified command before app loading.--exec-post-appโ runs the specified command after app loading.--exec-as-vassalโ runs the specified command beforeexec()ing the vassal.--exec-as-emperorโ runs the specified command in the emperor after the vassal has been started.--mount-asapโ mounts a filesystem as soon as possible ๐--mount-pre-jailโ mounts filesystem before jailing.--mount-post-jailโ mounts filesystem after jailing.--mount-in-jailโ mounts filesystem in jail after initialization.--mount-as-rootโ mounts filesystem before the privileges drop.--mount-as-vassalโ mounts filesystem beforeexec()ing the vassal.--mount-as-emperorโ mounts filesystem in the emperor after the vassal has been started.--umount-asapโ unmounts a filesystem as soon as possible ๐งน--umount-pre-jailโ unmounts filesystem before jailing.--umount-post-jailโ unmounts filesystem after jailing.--umount-in-jailโ unmounts filesystem in jail after initialization.--umount-as-rootโ unmounts filesystem before the privileges drop.--umount-as-vassalโ unmounts filesystem beforeexec()ing the vassal.--umount-as-emperorโ unmounts filesystem in the emperor after the vassal has been started.--wait-for-interfaceโ waits for the network interface you name to come up before running root hooks ๐--wait-for-interface-timeoutโ sets the timeout forwait-for-interface.--wait-interfaceโ waits for the specified network interface to come up before running root hooks.--wait-interface-timeoutโ sets the timeout forwait-for-interface.--wait-for-ifaceโ waits for the specified network interface to come up before running root hooks.--wait-for-iface-timeoutโ sets the timeout forwait-for-interface.--wait-ifaceโ waits for the specified network interface to come up before running root hooks.--wait-iface-timeoutโ sets the timeout forwait-for-interface.--wait-for-fsโ waits for the specified filesystem item to appear before running root hooks.--wait-for-fileโ waits for the specified file to appear before running root hooks ๐--wait-for-dirโ waits for the specified directory to appear before running root hooks.--wait-for-mountpointโ waits for the specified mountpoint to appear before running root hooks.--wait-for-fs-timeoutโ sets the timeout forwait-for-fs/file/dirโณ--wait-for-socketโ waits for the specified socket to be ready before loading apps.--wait-for-socket-timeoutโ sets the timeout forwait-for-socket.--call-asapโ calls the specified function as soon as possible ๐--call-pre-jailโ calls the specified function before jailing.--call-post-jailโ calls the specified function after jailing.--call-in-jailโ calls the specified function in jail after initialization.--call-as-rootโ calls the specified function before the privileges drop.--call-as-userโ calls the specified function after the privileges drop.--call-as-user-atexitโ calls the specified function before app exit and reload.--call-pre-appโ calls the specified function before app loading.--call-post-appโ calls the specified function after app loading.--call-as-vassalโ calls the specifiedfunction()beforeexec()ing the vassal.--call-as-vassal1โ calls the specifiedfunction(char *)beforeexec()ing the vassal.--call-as-vassal3โ calls the specifiedfunction(char *, uid_t, gid_t)beforeexec()ing the vassal.--call-as-emperorโ calls the specifiedfunction()in the emperor after the vassal has been started.--call-as-emperor1โ calls the specifiedfunction(char *)in the emperor after the vassal has been started.--call-as-emperor2โ calls the specifiedfunction(char *, pid_t)in the emperor after the vassal has been started.--call-as-emperor4โ calls the specifiedfunction(char *, pid_t, uid_t, gid_t)in the emperor after the vassal has been started.--iniโ loads config from an ini file ๐-y|--yamlโ loads config from a yaml file.-y|--ymlโ loads config from a yaml file.-j|--jsonโ loads config from a json file.-j|--jsโ loads config from a json file.--weightโ sets the weight of the instance (used by clustering/lb/subscriptions) โ๏ธ--auto-weightโ sets the weight of the instance (used by clustering/lb/subscriptions) automatically.--no-serverโ forces no-server mode.--command-modeโ forces command mode.--no-defer-acceptโ disables deferred-accept on sockets.--tcp-nodelayโ enables TCP NODELAY on each request ๐--so-keepaliveโ enables TCP KEEPALIVEs.--so-send-timeoutโ setsSO_SNDTIMEO.--socket-send-timeoutโ setsSO_SNDTIMEO.--so-write-timeoutโ setsSO_SNDTIMEO.--socket-write-timeoutโ setsSO_SNDTIMEO.--socket-sndbufโ setsSO_SNDBUF.--socket-rcvbufโ setsSO_RCVBUF.--shutdown-socketsโ forces callingshutdown()in addition toclose()when sockets are destroyed ๐--limit-asโ limits processes address space/vsz.--limit-nprocโ limits the number of spawnable processes.--reload-on-asโ reloads if address space is higher than the specified megabytes.--reload-on-rssโ reloads if rss memory is higher than the specified megabytes.--evil-reload-on-asโ forces the master to reload a worker if its address space is higher than the specified megabytes ๐--evil-reload-on-rssโ forces the master to reload a worker if its rss memory is higher than the specified megabytes.--mem-collector-freqโ sets the memory collector frequency when evil reloads are in place.--reload-on-fdโ reloads if the specified file descriptor is ready.--brutal-reload-on-fdโ brutal reload if the specified file descriptor is ready ๐--ksmโ enables Linux KSM.--pcre-jitโ enables pcre jit (if available).--never-swapโ locks all memory pages, avoiding swapping ๐--touch-reloadโ reloads uWSGI if the specified file is modified/touched.--touch-workers-reloadโ triggers a reload of (only) the workers if the specified file is modified/touched.--touch-mules-reloadโ reloads mules if the specified file is modified/touched.--touch-spoolers-reloadโ reloads spoolers if the specified file is modified/touched.--touch-chain-reloadโ triggers a chain reload if the specified file is modified/touched โ๏ธ--touch-logrotateโ triggers logrotation if the specified file is modified/touched.--touch-logreopenโ triggers log reopen if the specified file is modified/touched.--touch-execโ runs a command when the specified file is modified/touched. Syntax:file commandโจ--touch-signalโ the moment that one file gets modified or touched, fire off a signal, bestie โจ (syntax isfile signal, so like--touch-signal /tmp/thing 17)--fs-reloadโ if the filesystem object you point at gets modified, do a graceful reload ๐--fs-brutal-reloadโ same energy, except it's a brutal reload when that filesystem object changes ๐ค no softness, no grace--fs-signalโ raise a uwsgi signal when the specified filesystem object gets modified (syntax:file signal) ๐ฆ--check-mountpointโ if a filesystem becomes unreachable, the instance gets destroyed ๐ genuinely useful if you want reliable Fuse management--mountpoint-checkโ exact same thing: destroy the instance if a filesystem is no longer reachable (again, for reliable Fuse management) ๐ฅ--check-mountโ yep, you guessed it โ destroy the instance when a filesystem is unreachable, for that reliable Fuse management life ๐ธ--mount-checkโ the fourth alias, same deal: instance goes bye-bye if the filesystem can't be reached, useful for reliable Fuse management ๐--propagate-touchโ the over-engineering option, for systems with flaky signal management ๐ it's giving "we did too much and we know it"--limit-postโ cap that request body, periodt ๐--no-orphansโ workers get automatically killed if the master dies. Heads up though: this can be dangerous for availability โ ๏ธ--prioโ set processes/threads priority ๐--cpu-affinityโ set cpu affinity ๐ง--post-bufferingโ set the size in bytes where, past that point, it buffers to disk instead of memory ๐--post-buffering-bufsizeโ set the buffer size used forread()in post buffering mode ๐--body-read-warningโ set how much memory allocation (in megabytes) is allowed for a request body before it starts printing a warning ๐ญ--upload-progressโ turn on creation of.jsonfiles in the directory you specify, while a file upload is happening โจ--no-default-appโ do not fall back to the default app ๐--manage-script-nameโ automatically rewriteSCRIPT_NAMEandPATH_INFO๐ฆ--ignore-script-nameโ just ignoreSCRIPT_NAMEentirely--catch-exceptionsโ report exceptions as http output. Discouraged โ use this only for testing, fr fr ๐จ--reload-on-exceptionโ reload a worker whenever an exception gets raised ๐--reload-on-exception-typeโ reload a worker when one specific exception type gets raised ๐ฏ--reload-on-exception-valueโ reload a worker when a specific exception value gets raised--reload-on-exception-reprโ reload a worker when a specific exception type+value (language-specific) is raised ๐--exception-handlerโ add an exception handler ๐ซถ--enable-metricsโ turn on the metrics subsystem ๐--metricโ add a custom metric โจ--metric-thresholdโ add a metric threshold/alarm ๐จ--metric-alarmโ also adds a metric threshold/alarm (same thing, different name bestie)--alarm-metricโ and again โ add a metric threshold/alarm ๐--metrics-dirโ export metrics as text files into the directory you name ๐--metrics-dir-restoreโ restore the last value taken from the metrics dir--metric-dirโ export metrics as text files to the specified directory (yes, singular spelling, same vibe)--metric-dir-restoreโ restore last value taken from the metrics dir ๐ซ--metrics-no-coresโ disable generation of cores-related metrics ๐ซ--udpโ run the udp server on the address you give it ๐--statsโ enable the stats server on the specified address ๐--stats-serverโ enable the stats server on the specified address (same option, other name)--stats-httpโ prefix the stats server json output with http headers ๐--stats-minifiedโ minify the statistics json output โ๏ธ--stats-minโ minify statistics json output (short version, same result)--stats-pushโ push the stats json to the destination you specify ๐--stats-pusher-default-freqโ set the default frequency of stats pushers โฑ๏ธ--stats-pushers-default-freqโ set the default frequency of stats pushers (plural spelling, same deal)--stats-no-coresโ disable generation of cores-related stats--stats-no-metricsโ don't include metrics in the stats output ๐--multicastโ subscribe to the multicast group you specify ๐ก--multicast-ttlโ set multicast ttl--multicast-loopโ set multicast loop (default1) ๐--master-fifoโ enable the master fifo ๐--notify-socketโ enable the notification socket ๐--subscription-notify-socketโ set the notification socket used for subscriptions--legionโ become a member of a legion โ๏ธ--legion-mcastโ become a member of a legion (shortcut for multicast) ๐--legion-nodeโ add a node to a legion--legion-freqโ set the frequency of legion packets ๐ซ--legion-toleranceโ set the tolerance of the legion subsystem--legion-death-on-lord-errorโ declare itself a dead node for the number of seconds you specify if one of the lord hooks fails ๐--legion-skew-toleranceโ set the clock skew tolerance of the legion subsystem (default60seconds) โฐ--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 (that's the shutdown of the instance, dramatic ik) ๐ญ--legion-joinโ action to call on legion join (the first time quorum is reached) ๐--legion-node-joinedโ action to call when a new node joins the legion--legion-node-leftโ action to call when a node leaves the legion ๐--legion-quorumโ set the quorum of a legion ๐ณ๏ธ--legion-scrollโ set the scroll of a legion ๐--legion-scroll-max-sizeโ set the max size of the legion scroll buffer--legion-scroll-list-max-sizeโ set the max size of the legion scroll list buffer--subscriptions-sign-checkโ set the digest algorithm and certificate directory for the secured subscription system ๐--subscriptions-sign-check-toleranceโ set the maximum tolerance (in seconds) of clock skew for the secured subscription system--subscriptions-sign-skip-uidโ skip the signature check for the uid you specify when using unix sockets credentials ๐ชช--subscriptions-credentials-checkโ add a directory to search for subscriptions key credentials ๐--subscriptions-use-credentialsโ enable management ofSCM_CREDENTIALSin subscriptions UNIX sockets--subscription-algoโ set the load balancing algorithm for the subscription system โ๏ธ--subscription-dotsplitโ try to fall back to the next part (dot based) in the subscription key ๐ฏ--subscribe-toโ subscribe to the subscription server you specify ๐ฌ--stโ subscribe to the specified subscription server (the tiny version)--subscribeโ subscribe to the specified subscription server ๐ซถ--subscribe2โ subscribe to the specified subscription server using the advanced keyval syntax โจ--subscribe-freqโ send subscription announce at the interval you specify โฑ๏ธ--subscription-toleranceโ set tolerance for subscription servers--unsubscribe-on-graceful-reloadโ force the unsubscribe request even during a graceful reload ๐--start-unsubscribedโ configure subscriptions but don't actually send them (super handy with master fifo) ๐--subscribe-with-modifier1โ force the specified modifier1 when subscribing--snmpโ enable the embedded snmp server ๐--snmp-communityโ set the snmp community string--ssl-verboseโ be verbose about SSL errors ๐ข--ssl-verify-depthโ set the maximum certificate verification depth ๐--sniโ add an SNI-governed SSL context ๐ง--sni-dirโ check forcert/key/client_cafiles in the directory you specify, and create a sni/ssl context on demand ๐--sni-dir-ciphersโ set ssl ciphers for thesni-diroption ๐--ssl-enable3โ enable SSLv3. This is insecure โ ๏ธ like, genuinely, bestie--ssl-enable-sslv3โ enable SSLv3 โ also insecure ๐จ--ssl-enable-tlsv1โ enable TLSv1 โ insecure too ๐ฌ--ssl-optionโ set a raw ssl option (numeric value) ๐ข--sni-regexpโ add an SNI-governed SSL context where the key is a regexp ๐--ssl-tmp-dirโ store ssl-related temp files in the directory you specify--check-intervalโ set the interval (in seconds) of master checks โฐ--forkbomb-delayโ sleep for the number of seconds you specify when a forkbomb is detected ๐ฃ--binary-pathโ force binary path ๐ฃ๏ธ--privileged-binary-patchโ patch the uwsgi binary with a new command (this happens before privileges drop) ๐--unprivileged-binary-patchโ patch the uwsgi binary with a new command (this happens after privileges drop)--privileged-binary-patch-argโ patch the uwsgi binary with a new command and arguments (before privileges drop) ๐งฉ--unprivileged-binary-patch-argโ patch the uwsgi binary with a new command and arguments (after privileges drop)--asyncโ enable async mode with the number of cores you specify โก--max-fdโ set the maximum number of file descriptors (requires root privileges ๐)--logtoโ set logfile/udp address ๐--logto2โ log to the specified file or udp address after privileges drop--log-formatโ set an advanced format for request logging โจ--logformatโ set advanced format for request logging (same option, one dash fewer)--logformat-strftimeโ applystrftimeto logformat output ๐ฐ๏ธ--log-format-strftimeโ applystrftimeto logformat output (yep, the dashed twin)--logfile-chownโ chown logfiles ๐ค--logfile-chmodโ chmod logfiles ๐ง--log-syslogโ log to syslog ๐ฎ--log-socketโ send logs to the socket you specify ๐--req-loggerโ set/append a request logger--logger-reqโ set/append a request logger (same thing, flipped name, we love consistency ๐ )--loggerโ set/append a logger ๐--logger-listโ list enabled loggers ๐--loggers-listโ list enabled loggers (plural, same output)--threaded-loggerโ offload log writing to a thread ๐งต--log-encoderโ add an item in the log encoder chain ๐--log-req-encoderโ add an item in the log req encoder chain--log-drainโ drain (aka don't show) log lines that match the regexp you specify ๐ณ๏ธ--log-filterโ show only log lines matching the regexp you specify ๐--log-routeโ log to the named logger you specify if the regexp applied to the logline matches ๐--log-req-routeโ log requests to the named logger you specify if the regexp applied to 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โ bestie, instead of spinning up a whole dedicated thread for every curl-based alarm, just reuse the main alarm thread ๐ cheaper, faster, iconic.--alarm-freqโ tunes the anti-loop alarm system. default is3 secondsbtw โฑ๏ธ--alarm-fdโ fire the alarm you name whenever an fd gets read for read. by default it reads1byte โ set it to8for eventfd, no cap ๐ซถ--alarm-segfaultโ raise the specified alarm the moment the segmentation fault handler runs ๐--segfault-alarmโ same energy, same thing: raise the specified alarm when the segfault handler executes ๐--alarm-backlogโ raise the specified alarm when the socket backlog queue is full ๐ญ--backlog-alarmโ yep, twin: raise the specified alarm when the socket backlog queue is full ๐ญ--lq-alarmโ raise the specified alarm when the socket backlog queue is full (listen-queue girlies rise ๐)--alarm-lqโ same deal, raise the specified alarm when the socket backlog queue is full.--alarm-listen-queueโ raise the specified alarm when the socket backlog queue is full ๐ฅ--listen-queue-alarmโ and again, raise the specified alarm when the socket backlog queue is full.--log-alarmโ raise the specified alarm whenever a log line matches your regexp. syntax:<alarm>[,alarm...] <regexp>โจ--alarm-logโ raise the specified alarm when a log line matches the specified regexp. syntax:<alarm>[,alarm...] <regexp>--not-log-alarmโ skip the specified alarm when a log line matches the regexp. syntax:<alarm>[,alarm...] <regexp> ๐ โโ๏ธ--not-alarm-logโ skip the specified alarm when a log line matches the specified regexp. syntax:<alarm>[,alarm...] <regexp>--alarm-listโ just lists all your enabled alarms, so you can vibe check them ๐--alarms-listโ same, list enabled alarms.--alarm-msg-sizeโ sets the max size of an alarm message. default is8192๐--log-masterโ delegate the logging to the master process ๐ง--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 a reload ๐--log-truncateโ truncate the log on startup ๐งผ--log-maxsizeโ set maximum logfile size.--log-backupnameโ set the logfile name used after rotation ๐--logdateโ prefix logs with a date, or astrftimestring ๐--log-dateโ prefix logs with date or astrftimestring (same thing, 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 that come back with a 4xx response ๐ฌ--log-5xxโ log requests with a 5xx response ๐ญ--log-bigโ log requests bigger than the size you specify ๐--log-sendfileโ log sendfile requests ๐จ--log-ioerrorโ log requests that hit 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 the privileges drop after plugin initialization. note: this is superseded bydrop-after-appsโ ๏ธ--drop-after-appsโ run the privileges drop after apps loading. note: this is superseded bymaster-as-rootโ ๏ธ--force-cwdโ force the initial working directory to the value you specify ๐--binshโ override/bin/sh(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 the workers instead of the master ๐ด--lazy-appsโ load apps in each worker instead of the master ๐ค--cheapโ set cheap mode: only spawn workers after the first request ๐ช--cheaperโ set cheaper mode, aka 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โ the 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 than this, try to stop workers โ--idleโ set idle mode: put uWSGI into cheap mode after inactivity ๐--die-on-idleโ shutdown uWSGI when idle ๐--mountโ load the application under the specified mountpoint ๐๏ธ--worker-mountโ load the application under the mountpoint in the specified worker, or after workers spawn ๐ท--threadsโ run each worker in prethreaded mode with the specified number of threads ๐งต--thread-stacksizeโ set threads stacksize.--threads-stacksizeโ set threads stacksize.--thread-stack-sizeโ set threads stacksize.--threads-stack-sizeโ set threads stacksize (yes bestie, four whole spellings of the same thing, slay ๐ )--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, but the 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 a managed 403 response ๐ซ--error-page-404โ add an error page (html) for a managed 404 response ๐--error-page-500โ add an error page (html) for a managed 500 response ๐ฅ
--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 ๐ฐ๏ธ
okay we're SO back bestie, the options keep going and honestly? iconic behavior ๐
--clocks-listโ shows you every clock that's enabled, like a lil headcount of your clocks โฐ--add-headerโ auto-slaps HTTP headers onto the response, no manual labor required โจ--rem-headerโ auto-removes the HTTP header you name from the response, gone, bye ๐ซถ--del-headerโ same vibe as above: auto-removes the specified HTTP header from the response ๐ซ--collect-headerโ stashes the specified response header into a request var (syntax:header var) ๐--response-header-collectโ also stores that specified response header in a request var (syntax:header var) ๐ธ--pull-headerโ stores the specified response header in a request var and yeets it out of the response (syntax:header var) ๐--check-staticโ peeks for static files in the directory you name ๐--check-static-docrootโ checks for static files in the requestedDOCUMENT_ROOT๐๏ธ--static-checkโ checks for static files in the specified directory (yes, same energy as check-static, different flag name) ๐--static-mapโ maps a mountpoint to a static directory (or file) ๐บ๏ธ--static-map2โ like--static-mapexcept it completely appends the requested resource to the docroot ๐--static-skip-extโ skips the extension you name when doing staticfile checks ๐--static-indexโ searches for the file you specify if a directory is what got requested ๐--static-safeโ skips security checks when the file lives under the path you give it ๐ก๏ธ--static-cache-pathsโ pops resolved paths into the uWSGI cache for however many seconds you say โฑ๏ธ--static-cache-paths-nameโ uses the cache you named for static paths ๐พ--mimefileโ sets the mime types file path (default/etc/mime.types) ๐--mime-fileโ also sets the mime types file path (default/etc/mime.types), twin flag fr fr ๐ฏ--static-expires-typeโ sets theExpiresheader based on content type ๐ฐ๏ธ--static-expires-type-mtimeโ sets theExpiresheader based on content type and file mtime โณ--static-expiresโ sets theExpiresheader based on a filename regexp ๐ค--static-expires-mtimeโ sets theExpiresheader based on filename regexp and file mtime โ--static-expires-uriโ sets theExpiresheader based on aREQUEST_URIregexp ๐--static-expires-uri-mtimeโ sets theExpiresheader based onREQUEST_URIregexp and file mtime ๐--static-expires-path-infoโ sets theExpiresheader based on aPATH_INFOregexp ๐ค๏ธ--static-expires-path-info-mtimeโ sets theExpiresheader based onPATH_INFOregexp and file mtime ๐--static-gzipโ if your regexp matches the static file translation, it goes hunting for a gzip version ๐๏ธ--static-gzip-allโ checks for a gzip version of every requested static file ๐--static-gzip-dirโ checks for a gzip version of all requested static files in the dir/prefix you specify ๐ฆ--static-gzip-prefixโ same deal: gzip version check for all requested static files in the specified dir/prefix ๐งณ--static-gzip-extโ checks for a gzip version of all requested static files with the ext/suffix you give ๐ท๏ธ--static-gzip-suffixโ same but it's the specified ext/suffix, matching energy ๐--honour-rangeโ turns on support for the HTTPRangeheader ๐ฏ--offload-threadsโ sets how many offload threads to spawn (per-worker, default0) ๐งต--offload-threadโ same: number of offload threads to spawn (per-worker, default0) ๐ชก--file-serve-modeโ sets the static file serving mode ๐ฝ๏ธ--fileserve-modeโ also sets the static file serving mode, bestie twin ๐ซ--disable-sendfileโ disablessendfile()and relies on the "boring"read()/write()instead ๐ด--check-cacheโ checks for response data in the cache you name (leave it empty for the default cache) ๐--close-on-execโ sets close-on-exec on connection sockets (could be required for spawning processes in requests) ๐--close-on-exec2โ sets close-on-exec on server sockets (could be required for spawning processes in requests) ๐๏ธ--modeโ sets a uWSGI custom mode ๐๏ธ--envโ sets an environment variable ๐ฑ--envdirโ loads a daemontools compatible envdir ๐--early-envdirโ loads a daemontools compatible envdir ASAP, like right now, no waiting ๐โโ๏ธ--unenvโ unsets an environment variable ๐ซ--vacuumโ tries to remove all the generated file/sockets ๐งน--file-writeโ writes the content you specify to the file you specify (syntax:file=value) before privileges drop โ๏ธ--cgroupโ puts the processes in the cgroup you name ๐ชบ--cgroup-optโ sets a value in the specified cgroup option โ๏ธ--cgroup-dir-modeโ sets permission for the cgroup directory (default is700) ๐--namespaceโ runs in a new namespace under the rootfs you specify ๐--namespace-keep-mountโ keeps the mountpoint you name inside your namespace ๐--nsโ also runs in a new namespace under the specified rootfs, twin flag ๐ซ--namespace-netโ adds a network namespace ๐ธ๏ธ--ns-netโ adds a network namespace, matching set ๐--enable-proxy-protocolโ enablesPROXY1protocol support (only for http parsers) ๐ก--reuse-portโ enables theREUSE_PORTflag on the socket (BSD only) ๐ก--tcp-fast-openโ enables theTCP_FASTOPENflag on TCP sockets with the qlen value you give โก--tcp-fastopenโ same:TCP_FASTOPENflag on TCP sockets with the specified qlen value ๐--tcp-fast-open-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if it's supported ๐จ--tcp-fastopen-clientโ same energy:sendto(..., MSG_FASTOPEN, ...)overconnect()if supported ๐ฌ--zergโ attaches to a zerg server ๐ธ--zerg-fallbackโ falls back to normal sockets when the zerg server isn't available ๐ช--zerg-serverโ enables the zerg server on the UNIX socket you specify ๐--cronโ adds a cron task โฒ๏ธ--cron2โ adds a cron task withkey=valsyntax ๐--unique-cronโ adds a unique cron task ๐--cron-harakiriโ sets the max time (in seconds) we wait for the cron command to complete โณ--legion-cronโ adds a cron task that only runs when the instance is a lord of the specified legion ๐--cron-legionโ same thing, legion-lord-only cron task ๐ฐ--unique-legion-cronโ adds a unique cron task that only runs when the instance is a lord of the specified legion ๐--unique-cron-legionโ unique cron task, legion-lord-only, yes again ๐--loopโ selects the uWSGI loop engine ๐--loop-listโ lists enabled loop engines ๐--loops-listโ also lists enabled loop engines, plural twin ๐--worker-execโ runs the command you specify as a worker ๐ท--worker-exec2โ runs the specified command as a worker (after thepost_forkhook) ๐ช--attach-daemonโ attaches a command/daemon to the master process (the command has to not go in background) ๐งท--attach-control-daemonโ attaches a command/daemon to the master process (the command has to not go in background), and when the daemon dies, the master dies too ๐--smart-attach-daemonโ attaches a command/daemon to the master process managed by a pidfile (the command has to daemonize) ๐ง--smart-attach-daemon2โ attaches a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize) ๐ซ--legion-attach-daemonโ same as--attach-daemonbut the daemon only runs on the legion lord node ๐--legion-smart-attach-daemonโ same as--smart-attach-daemonbut daemon only runs on the legion lord node ๐--legion-smart-attach-daemon2โ same as--smart-attach-daemon2but daemon only runs on the legion lord node ๐๏ธ--daemons-honour-stdinโ does not change the stdin of external daemons to/dev/null๐--attach-daemon2โ the attach-daemon keyval variant (supports smart modes too) ๐ง--pluginsโ loads uWSGI plugins ๐งฉ--pluginโ loads uWSGI plugins, singular twin ๐งท--need-pluginsโ loads uWSGI plugins and exits on error ๐ช--need-pluginโ same: loads uWSGI plugins, exits on error ๐--plugins-dirโ adds a directory to the uWSGI plugin search path ๐บ๏ธ--plugin-dirโ adds a directory to the uWSGI plugin search path, twin again ๐--plugins-listโ lists enabled plugins ๐--plugin-listโ lists enabled plugins, yep ๐--autoloadโ tries to automatically load plugins when unknown options show up ๐ค--dlopenโ blindly loads a shared library, no questions asked ๐--allowed-modifiersโ a comma separated list of allowed modifiers โ--remap-modifierโ remaps a request modifier from one id to another ๐--dump-optionsโ dumps the full list of available options ๐๏ธ--show-configโ shows the current config reformatted as ini ๐--binary-append-dataโ returns the content of a resource to stdout for appending to a uwsgi binary (fordata://usage) ๐งฌ--printโ simple print ๐จ๏ธ--iprintโ simple print (the immediate version) โก--exitโ forcesexit()of the instance ๐ช--cflagsโ reports uWSGICFLAGS(useful for building external plugins) ๐๏ธ--dot-hโ dumps theuwsgi.hused for building the core (useful for building external plugins) ๐--config-pyโ dumps theuwsgiconfig.pyused for building the core (useful for building external plugins) ๐--build-pluginโ builds a uWSGI plugin for the current binary ๐จ--versionโ prints the uWSGI version ๐ท๏ธ--response-headers-limitโ sets the response header maximum size (default:64k) ๐
and that's a wrap on the options, bestie ๐ you made it to the end and honestly? main character energy fr fr. this page comes to you from uwsgi_gccgo version 2.0.31-2, dated February 2026 โ go build something gorgeous with it ๐โจ๐ธ
๐ฆ where this page comes from
- ubuntu resolute: uwsgi-plugin-gccgo 2.0.31+2+0.0.3build2 ยท GPL-3.0-or-later
- ubuntu stonking: uwsgi-plugin-gccgo 2.0.31+2+0.0.3build2 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms