UWSGI_JVM(1)
๐ UWSGI_JVM(1) โ User Commands ๐
okay bestie, welcome to UWSGI_JVM(1) โ aka uwsgi_jvm(1) โ from User Commands. this is the manual page we're about to go through like it's a group chat recap. no cap, nothing skipped. ๐ซถ
โจ NAME โจ
uwsgi_jvm โ fast (pure C), self-healing, developer-friendly WSGI server. it's giving iconic server behavior, fr fr. ๐
๐ธ SYNOPSIS ๐ธ
uwsgi-core [options...]
๐ DESCRIPTION ๐
okay so here's the whole option buffet. every flag, every vibe, every "bestie what does this do" answered. let's get into it. โจ
-s,--socketโ bind to the specified UNIX/TCP socket using default protocol. this is your main "where do I listen" moment. ๐-s,--uwsgi-socketโ bind to the specified UNIX/TCP socket usinguwsgiprotocol. keep the protocol asuwsgi, bestie. ๐ฆ--suwsgi-socketโ bind to the specified UNIX/TCP socket usinguwsgiprotocol over SSL. secure vibes only. ๐--ssl-socketโ bind to the specified UNIX/TCP socket usinguwsgiprotocol over SSL. same SSL energy, different flag name. โจ--http-socketโ bind to the specified UNIX/TCP socket using HTTP protocol. yes, plain HTTP, no cap. ๐--http-socket-modifier1โ force the specifiedmodifier1when using HTTP protocol. ๐--http-socket-modifier2โ force the specifiedmodifier2when using HTTP protocol. ๐--http11-socketโ bind to the specified UNIX/TCP socket using HTTP 1.1 (Keep-Alive) protocol. keep-alive, keep thriving. ๐ฅ--https-socketโ bind to the specified UNIX/TCP socket using HTTPS protocol. secure and slaying. ๐--https-socket-modifier1โ force the specifiedmodifier1when using HTTPS protocol. โจ--https-socket-modifier2โ force the specifiedmodifier2when using HTTPS protocol. โจ--fastcgi-socketโ bind to the specified UNIX/TCP socket using FastCGI protocol. old school but still cute. ๐--fastcgi-nph-socketโ bind to the specified UNIX/TCP socket using FastCGI protocol (nph mode). note the(nph mode), bestie. ๐--fastcgi-modifier1โ force the specifiedmodifier1when using FastCGI protocol. ๐--fastcgi-modifier2โ force the specifiedmodifier2when using FastCGI protocol. ๐--scgi-socketโ bind to the specified UNIX/TCP socket using SCGI protocol. SCGI said hello. ๐--scgi-nph-socketโ bind to the specified UNIX/TCP socket using SCGI protocol (nph mode). again,(nph mode)is the moment. ๐ธ--scgi-modifier1โ force the specifiedmodifier1when using SCGI protocol. โจ--scgi-modifier2โ force the specifiedmodifier2when using SCGI protocol. โจ--raw-socketโ bind to the specified UNIX/TCP socket using RAW protocol. raw and unfiltered, iykyk. ๐--raw-modifier1โ force the specifiedmodifier1when using RAW protocol. ๐--raw-modifier2โ force the specifiedmodifier2when using RAW protocol. ๐--puwsgi-socketโ bind to the specified UNIX/TCP socket using persistentuwsgiprotocol (puwsgi). persistent queen behavior. ๐--protocolโ force the specified protocol for default sockets. default sockets, specified protocol. periodt. ๐--socket-protocolโ force the specified protocol for default sockets. same tea as above, different flag. ๐--shared-socketโ create a shared socket for advanced jailing or ipc. advanced jailing/ipc besties, this one's for you. ๐ง--undeferred-shared-socketโ create a shared socket for advanced jailing or ipc (undeferred mode). yes,(undeferred mode)is part of the vibe. โจ-p,--processesโ spawn the specified number of workers/processes. more processes, more main character energy. ๐-p,--workersโ spawn the specified number of workers/processes. same as above, just under the--workersname. ๐ซถ--thunder-lockโ serializeaccept()usage (if possible). thunder lock said "one at a time, bestie." โก-t,--harakiriโ set harakiri timeout. dramatic name, serious timeout. ๐ก๏ธ--harakiri-verboseโ enable verbose mode for harakiri. verbose harakiri, because we need the details. ๐ฃ--harakiri-graceful-timeoutโ interval between graceful harakiri attempt and asigkill. yes,sigkillis the whole mood. ๐--harakiri-graceful-signalโ use this signal instead ofsigtermfor graceful harakiri attempts. pick your signal, bestie. ๐ฆ--harakiri-queue-thresholdโ only trigger harakiri if queue is greater than this threshold. threshold tea. ๐ต--harakiri-no-arhโ do not enable harakiri during after-request-hook. no harakiri in the after-request-hook era. ๐--no-harakiri-arhโ do not enable harakiri during after-request-hook. same rule, different alias. โจ--no-harakiri-after-req-hookโ do not enable harakiri during after-request-hook. the long-name version of the same boundary. ๐--backtrace-depthโ set backtrace depth. for when you need the stack trace to spill the tea. ๐ซ--mule-harakiriโ set harakiri timeout for mule tasks. mules get their own harakiri timer, periodt. ๐ด-x,--xmlconfigโ load config from xml file. xml config loading, old school cute. ๐-x,--xmlโ load config from xml file. same-xenergy, shorter flag name. โจ--configโ load configuration using the pluggable system. pluggable system said "load me." ๐--fallback-configโ re-execuwsgiwith the specified config when exit code is1. fallback plan on exit code1, no cap. ๐จ--strictโ enable strict mode (placeholder cannot be used). strict mode is strict, bestie. ๐ซ--skip-zeroโ skip check of file descriptor0. fd0check skipped. 0๏ธโฃ--skip-atexitโ skip atexit hooks (ignored by the master). the master ignores this, but the flag exists. ๐--skip-atexit-teardownโ skip atexit teardown (ignored by the master). teardown skip, still ignored by the master. ๐งน-S,--setโ set a placeholder or an option. placeholder or option, you choose. ๐--set-placeholderโ set a placeholder. placeholder getting set, slay. โจ--set-phโ set a placeholder. short version of placeholder-setting. ๐--getโ print the specified option value and exit. print it and dip. ๐จ๏ธ--declare-optionโ declare a new uWSGI custom option. custom option, custom vibes. ๐ ๏ธ--declare-option2โ declare a new uWSGI custom option (non-immediate). the(non-immediate)part matters. โณ--resolveโ place the result of adnsquery in the specified placeholder,sytax: placeholder=name(immediate option). yes,sytaxis spelled like that in the source, bestie. ๐--forโ (opt logic) for cycle. opt logic for-cycle moment. ๐--for-globโ (opt logic) for cycle (expand glob). glob expansion included. โจ--for-timesโ (opt logic) for cycle (expand the specified num to a list starting from1). starts from1, no cap. 1๏ธโฃ--for-readlineโ (opt logic) for cycle (expand the specified file to a list of lines). file lines become list items. ๐--endforโ (opt logic) end for cycle. close that for cycle. ๐--end-forโ (opt logic) end for cycle. same ending, hyphenated. โจ--if-optโ (opt logic) check for option. opt logic if-option check. โ--if-not-optโ (opt logic) check for option. the "not" version still checks for option. ๐ค--if-envโ (opt logic) check for environment variable. env var check, bestie. ๐ฑ--if-not-envโ (opt logic) check for environment variable. same check, "not" flavor. ๐--ifenvโ (opt logic) check for environment variable. short alias for the env check. โจ--if-reloadโ (opt logic) check for reload. reload check incoming. ๐--if-not-reloadโ (opt logic) check for reload. reload check, but negated. ๐ซ--if-hostnameโ (opt logic) check for hostname. hostname check, periodt. ๐ฅ๏ธ--if-not-hostnameโ (opt logic) check for hostname. hostname check, negated. ๐--if-hostname-matchโ (opt logic) try to match hostname against a regular expression. regex hostname matching, iykyk. ๐ง--if-not-hostname-matchโ (opt logic) try to match hostname against a regular expression. same regex, negated. โจ--if-existsโ (opt logic) check for file/directory existence. existence check for file/directory. ๐--if-not-existsโ (opt logic) check for file/directory existence. existence check, negated. ๐ซ--ifexistsโ (opt logic) check for file/directory existence. short alias for existence checking. โจ--if-pluginโ (opt logic) check for plugin. plugin check, bestie. ๐--if-not-pluginโ (opt logic) check for plugin. plugin check, negated. ๐--ifpluginโ (opt logic) check for plugin. short plugin check. ๐--if-fileโ (opt logic) check for file existence. file existence check. ๐--if-not-fileโ (opt logic) check for file existence. file existence check, negated. ๐ซ--if-dirโ (opt logic) check for directory existence. directory existence check. ๐--if-not-dirโ (opt logic) check for directory existence. directory existence check, negated. ๐ซ--ifdirโ (opt logic) check for directory existence. short directory check. โจ--if-directoryโ (opt logic) check for directory existence. long-form directory check. ๐--endifโ (opt logic) end if. close that if block. ๐--end-ifโ (opt logic) end if. same ending, hyphenated. โจ--blacklistโ set options blacklist context. blacklist context, set. ๐ค--end-blacklistโ clear options blacklist context. blacklist context cleared. ๐งผ--whitelistโ set options whitelist context. whitelist context, set. ๐ค--end-whitelistโ clear options whitelist context. whitelist context cleared. โจ--ignore-sigpipeโ do not report (annoying)SIGPIPE. yes,(annoying)is in the original. ๐ซ--ignore-write-errorsโ do not report (annoying)write()/writev()errors. ignore those annoying write errors. ๐--write-errors-toleranceโ set the maximum number of allowed write errors (default: no tolerance). default isno tolerance, so don't push it. ๐--write-errors-exception-onlyโ only raise an exception on write errors giving control to the app itself. app gets the control. ๐ฎ--disable-write-exceptionโ disable exception generation onwrite()/writev(). no exception generation on those calls. ๐ซ--inheritโ use the specified file as config template. config template energy. ๐--includeโ include the specified file as immediate configuration. immediate configuration included. โก--inject-beforeโ inject a text file before the config file (advanced templating). before the config file, advanced templating. โจ--inject-afterโ inject a text file after the config file (advanced templating). after the config file, advanced templating. โจ-d,--daemonizeโ daemonize uWSGI. daemon mode, slay. ๐ป--daemonize2โ daemonize uWSGI after app loading. daemonize after app loading, no cap. โณ--stopโ stop an instance. stop that instance. ๐--reloadโ reload an instance. reload that instance. ๐--pauseโ pause an instance. pause it. โธ๏ธ--suspendโ suspend an instance. suspend it. โธ๏ธ--resumeโ resume an instance. resume it. โถ๏ธ--connect-and-readโ connect to a socket and wait for data from it. connect, then wait for data. ๐ก--extractโ fetch/dump any supported address to stdout. dump supported address to stdout. ๐จ๏ธ-l,--listenโ set the socket listen queue size. listen queue size, set. ๐-v,--max-varsโ set the amount of internal iovec/vars structures. iovec/vars structures amount. ๐ฆ--max-appsโ set the maximum number of per-worker applications. max per-worker apps. ๐ฑ-b,--buffer-sizeโ set internal buffer size. buffer size, bestie. ๐งบ-m,--memory-reportโ enable memory report. memory report enabled. ๐ง--profilerโ enable the specified profiler. profiler enabled. ๐-c,--cgi-modeโ force CGI-mode for plugins supporting it. CGI-mode for the plugins that support it. ๐-a,--abstract-socketโ force UNIX socket in abstract mode (Linux only). Linux only, abstract mode. ๐ง-C,--chmod-socketโ chmod-socket. literallychmod-socket. ๐-C,--chmodโ chmod-socket. same-Cenergy, shorter name. โจ--chown-socketโ chown unix sockets. unix sockets get chowned. ๐--umaskโ set umask. umask set. ๐ญ--freebindโ put socket in freebind mode. freebind mode, activated. ๐๏ธ--map-socketโ map sockets to specific workers. map sockets to workers. ๐บ๏ธ-T,--enable-threadsโ enable threads (stub option this is true by default). stub option, and it's true by default. ๐งต--no-threads-waitโ do not wait for threads cancellation on quit/reload. no waiting for threads cancellation on quit/reload. ๐ซ--auto-procnameโ automatically set processes name to something meaningful. auto meaningful process names. ๐ท๏ธ--procname-prefixโ add a prefix to the process names. prefix added. โจ--procname-prefix-spacedโ add a spaced prefix to the process names. spaced prefix, because aesthetics. ๐--procname-appendโ append a string to process names. append a string. โ--procnameโ set process names. set those process names. ๐--procname-masterโ set master process name. master process name, set. ๐-i,--single-interpreterโ do not use multiple interpreters (where available). single interpreter where available. 1๏ธโฃ--need-appโ exit if no app can be loaded. no app loaded? exit. ๐ช-M,--masterโ enable master process. master process enabled. ๐--honour-stdinโ do not remap stdin to/dev/null. keep stdin, do not remap to/dev/null. ๐ซถ--emperorโ run the Emperor. run the Emperor. ๐--emperor-proxy-socketโ force the vassal to became an Emperor proxy. yes, "became" is what the page says, bestie. ๐ฐ--emperor-wrapperโ set a binary wrapper for vassals. binary wrapper for vassals. ๐--emperor-wrapper-overrideโ set a binary wrapper for vassals to try before the default one. try before the default one. ๐ฅ--emperor-wrapper-fallbackโ set a binary wrapper for vassals to try as a last resort. last resort wrapper. ๐--emperor-nofollowโ do not follow symlinks when checking for mtime. no symlink following for mtime checks. ๐ซ--emperor-procnameโ set the Emperor process name. Emperor process name, set. ๐--emperor-freqโ set the Emperor scan frequency (default 3 seconds). default is3seconds. โฐ--emperor-required-heartbeatโ set the Emperor tolerance about heartbeats. heartbeat tolerance. ๐--emperor-curse-toleranceโ set the Emperor tolerance about cursed vassals. cursed vassals tolerance, no cap. ๐
โจ OPTIONS โจ
okay bestie, buckle UP, this is the big one ๐ Emperor stuff first, because the Emperor is literally the main character here ๐
--emperor-pidfileโ drops the Emperor's pid into the file you name ๐--emperor-tyrantโ flips the Emperor into Tyrant mode ๐ (yes it's giving monarchy)--emperor-tyrant-nofollowโ in Tyrant mode, don't follow symlinks while it's checking for uid/gid ๐ซ๐--emperor-statsโ spin up the Emperor stats server ๐--emperor-stats-serverโ same thing, spin up the Emperor stats server ๐--early-emperorโ spawn the emperor as soon as possible โฉ--emperor-broodlordโ run the emperor in BroodLord mode ๐--emperor-throttleโ sets the throttling level, in milliseconds, for vassals that are being bad (default is1000) ๐ค--emperor-max-throttleโ sets the max throttling level, in milliseconds, for badly behaved vassals (default is3 minutes) ๐ฅ--emperor-magic-execโ prefixes vassals' config files withexec://if they've got the executable bit set โจ--emperor-on-demand-extensionโ looks for a text file (vassal name + extension) that contains the on demand socket name ๐--emperor-on-demand-extโ same deal, looks for that text file (vassal name + extension) holding the on demand socket name ๐--emperor-on-demand-directoryโ turns on on demand mode, binding to the unix socket in the directory you specify, named like the vassal +.socket๐งฆ--emperor-on-demand-dirโ yep, same thing: on demand mode, unix socket in your directory, named like the vassal +.socket๐งฆ--emperor-on-demand-execโ uses the output of the command you give as the on demand socket name (the vassal name gets passed as the only argument) ๐--emperor-extra-extensionโ lets the Emperor allow the extension you specify (the vassal gets called with--config) ๐--emperor-extra-extโ same energy: allows your specified extension in the Emperor (vassal gets called with--config) ๐--emperor-no-blacklistโ turns off the Emperor blacklisting subsystem ๐๐ซ--emperor-use-cloneโ usesclone()instead offork(), passing theunshare()flags you specify ๐งฌ--emperor-graceful-shutdownโ uses vassals' graceful shutdown during ragnarok ๐ (yes, ragnarok, iconic)--emperor-capโ sets vassals capability ๐ฉ--vassals-capโ sets vassals capability ๐ฉ--vassal-capโ sets vassals capability ๐ฉ--imperial-monitor-listโ lists the enabled imperial monitors ๐--imperial-monitors-listโ lists the enabled imperial monitors ๐--vassals-inheritโ adds config templates to vassals config (it uses--inherit) ๐งฌ--vassals-includeโ includes config templates into vassals config (it uses--includeinstead of--inherit) ๐ฅ--vassals-inherit-beforeโ adds config templates to vassals config (uses--inherit, and parses before the vassal file) ๐งฌโช--vassals-include-beforeโ includes config templates into vassals config (uses--includeinstead of--inherit, and parses before the vassal file) ๐ฅโช--vassals-start-hookโ runs the command you specify before every vassal starts ๐--vassals-stop-hookโ runs the command you specify after a vassal's death ๐ชฆ--vassal-sosโ asks the emperor for reinforcement when it's overloaded ๐--vassal-sos-backlogโ asks the emperor for sos if the backlog queue has more items than the value you specified ๐--vassals-setโ automatically sets the option you specify (via--set) for every vassal ๐๏ธ--vassal-setโ automatically sets the option you specify (via--set) for every vassal ๐๏ธ--heartbeatโ announces healthiness to the emperor ๐--reload-mercyโ sets the maximum time, in seconds, that we wait for workers and other processes to die during reload/shutdown โณ--worker-reload-mercyโ sets the max time, in seconds, a worker can take to reload/shutdown (default is60) โณ--mule-reload-mercyโ sets the max 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 doing a brutal reload onSIGTERM๐--force-gatewayโ forces the spawn of the first registered gateway without a master ๐ชโจ
and now the lil helpers ๐ซถ
-h|--helpโ shows this help ๐-h|--usageโ shows this help ๐--print-symโ prints the content of the binary symbol you specify ๐--print-symbolโ prints the content of the binary symbol you specify ๐-r|--reaperโ callswaitpid(-1,...)after each request so the zombies get gone ๐งโ๏ธ๐ซ-R|--max-requestsโ reloads workers after the specified amount of managed requests ๐--max-requests-deltaโ adds(worker_id * delta)to the max_requests value of each worker โ--min-worker-lifetimeโ the number of seconds a worker must run before it can be reloaded (default is10) โฑ๏ธ--max-worker-lifetimeโ reloads workers after the specified amount of seconds (default is disabled) โฑ๏ธ--max-worker-lifetime-deltaโ adds(worker_id * delta)seconds to the max_worker_lifetime value 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โ set 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 the specified pages (note: it supports keyval too) ๐ง--safe-fdโ don't close the file descriptor you specify ๐--fd-safeโ don't close the file descriptor you specify ๐--cacheโ creates a shared cache holding the given elements ๐๏ธ--cache-blocksizeโ sets the cache blocksize ๐งฑ--cache-storeโ enables persistent cache to disk ๐พ--cache-store-syncโ sets the sync frequency for the persistent cache ๐--cache-no-expireโ disables the auto sweep of expired items ๐งน๐ซ--cache-expire-freqโ sets how often the cache sweeper scans (default3 seconds) ๐งน--cache-report-freed-itemsโ constantly reports 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 socket you specify ๐ก--cache-udp-nodeโ sends cache update/deletion to the cache udp server you specify ๐ค--cache-syncโ copies the whole content of another uWSGI cache server at server startup ๐--cache-use-last-modifiedโ updates thelast_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 into the cache ๐--load-file-in-cache-gzipโ loads a static file into the cache with gzip compression ๐๏ธ--cache2โ creates a new generation shared cache (keyval syntax) ๐๏ธโจ--queueโ enables the shared queue ๐ฌ--queue-blocksizeโ sets the queue blocksize ๐งฑ--queue-storeโ enables persistent queue to disk ๐พ--queue-store-syncโ sets the sync frequency for the persistent queue ๐-Q|--spoolerโ runs a spooler on the directory you specify ๐งต--spooler-externalโ maps spooler requests to a spooler directory managed by an external instance ๐--spooler-orderedโ tries to order the execution of spooler tasks ๐ข--spooler-chdirโchdir()s to the specified directory before each spooler task ๐--spooler-processesโ sets the number of processes for spoolers ๐ฏ--spooler-quietโ don't be verbose with spooler tasks ๐คซ--spooler-max-tasksโ sets the max number of tasks to run before recycling a spooler โป๏ธ--spooler-harakiriโ sets the harakiri timeout for spooler tasks โ๏ธ--spooler-frequencyโ sets the spooler frequency ๐ถ--spooler-freqโ sets the spooler frequency ๐ถ--muleโ add a mule ๐ซ--mulesโ add the specified number of mules ๐ซ๐ซ๐ซ--farmโ add a mule farm ๐--mule-msg-sizeโ sets the mule message buffer size ๐จ--signalโ sends a uwsgi signal to a server ๐ถ--signal-bufsizeโ sets the buffer size for the signal queue ๐ฆ--signals-bufsizeโ sets the buffer size for the signal queue ๐ฆ--signal-timerโ adds a timer (syntax:<signal> <seconds>) โฒ๏ธ--timerโ adds a timer (syntax:<signal> <seconds>) โฒ๏ธ--signal-rbtimerโ adds a redblack timer (syntax:<signal> <seconds>) โฒ๏ธ๐ฒ--rbtimerโ adds a redblack timer (syntax:<signal> <seconds>) โฒ๏ธ๐ฒ--rpc-maxโ the maximum number of rpc slots (default:64) ๐ฐ-L|--disable-loggingโ disables request logging ๐ค--flockโ locks the file you specify before starting, and exits if it's locked ๐--flock-waitโ locks the file you specify before starting, and waits if it's locked โณ๐--flock2โ locks the file you specify after logging/daemon setup, exits if locked ๐--flock-wait2โ locks the file you specify after logging/daemon setup, waits if locked โณ๐--pidfileโ creates a pidfile (before the privileges drop) ๐--pidfile2โ creates a pidfile (after the privileges drop) ๐--safe-pidfileโ creates a safe pidfile (before the privileges drop) ๐๐--safe-pidfile2โ creates a safe pidfile (after the privileges drop) ๐๐--chrootโchroot()s to the directory you specify ๐ฆ--pivot-rootโpivot_root()s to the directories you specify (new_rootandput_oldmust be separated with a space) ๐--pivot_rootโpivot_root()s to the directories you specify (new_rootandput_oldmust be separated with a space) ๐--uidโ setuid to the user/uid you specify ๐--gidโ setgid to the group/gid you specify ๐--add-gidโ adds the group id you specify to the process credentials โ๐--immediate-uidโ setuid to the user/uid you specify IMMEDIATELY โก๐--immediate-gidโ setgid to the group/gid you specify IMMEDIATELY โก๐--no-initgroupsโ disables the additional groups set viainitgroups()๐ซ๐ฅ--capโ set process capability ๐ฉ--unshareโunshare()s part of the processes and puts it in a new namespace ๐--unshare2โunshare()s part of the processes and puts it in a new namespace after the rootfs change ๐--setns-socketโ exposes a unix socket returning namespace fds from/proc/self/ns๐--setns-socket-skipโ skips the entry you specify when sending setns file descriptors โญ๏ธ--setns-skipโ skips the entry you specify 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 the fds ๐๏ธ
and that's the vibes so far, bestie โ more coming, don't go anywhere ๐ฆ
--jailedโ marks the instance as jailed, which forces the execution ofpost_jailhooks. ๐--reforkโfork()again after privileges drop. Useful for jailing systems. ๐--re-forkโ yep, same thing:fork()again after privileges drop. Useful for jailing systems. ๐--refork-as-rootโfork()again before privileges drop. Useful for jailing systems. ๐--re-fork-as-rootโfork()again before privileges drop. Useful for jailing systems. ๐--refork-post-jailโfork()again after jailing. Useful for jailing systems. ๐--re-fork-post-jailโfork()again after jailing. Useful for jailing systems. ๐--hook-asapโ runs the specified hook as soon as possible. โก--hook-pre-jailโ runs the specified hook before jailing. ๐--hook-post-jailโ runs the specified hook after jailing. ๐--hook-in-jailโ runs the specified hook in jail after initialization. ๐ข--hook-as-rootโ runs the specified hook before privileges drop. ๐--hook-as-userโ runs the specified hook after privileges drop. ๐--hook-as-user-atexitโ runs the specified hook before app exit and reload. ๐ช--hook-pre-appโ runs the specified hook before app loading. ๐ฆ--hook-post-appโ runs the specified hook after app loading. โ--hook-post-forkโ runs the specified hook after each fork. ๐ด--hook-acceptingโ runs the specified hook after each worker enters the accepting phase. ๐--hook-accepting1โ runs the specified hook after the first worker enters the accepting phase. ๐ฅ--hook-accepting-onceโ runs the specified hook after each worker enters the accepting phase, but once per-instance. 1๏ธโฃ--hook-accepting1-onceโ runs the specified hook after the first worker enters the accepting phase, once per instance. ๐ฅ1๏ธโฃ--hook-master-startโ runs the specified hook when the Master starts. ๐--hook-touchโ runs the specified hook when the specified file is touched. Syntax:<file> <action>. ๐--hook-emperor-startโ runs the specified hook when the Emperor starts. ๐๐--hook-emperor-stopโ runs the specified hook when the Emperor sends a stop message. ๐--hook-emperor-reloadโ runs the specified hook when the Emperor sends a reload message. ๐--hook-emperor-lostโ runs the specified hook when the Emperor connection is lost. ๐--hook-as-vassalโ runs the specified hook beforeexec()ing the vassal. ๐ง๐ค๐ง--hook-as-emperorโ runs the specified hook in the emperor after the vassal has been started. ๐--hook-as-muleโ runs the specified hook in each mule. ๐ด--hook-as-gatewayโ runs the specified hook in each gateway. ๐ช--after-request-hookโ runs the specified function/symbol after each request. ๐--after-request-callโ runs the specified function/symbol after each request. ๐--exec-asapโ runs the specified command as soon as possible. โก--exec-pre-jailโ runs the specified command before jailing. ๐--exec-post-jailโ runs the specified command after jailing. ๐--exec-in-jailโ runs the specified command in jail after initialization. ๐ข--exec-as-rootโ runs the specified command before privileges drop. ๐--exec-as-userโ runs the specified command after privileges drop. ๐--exec-as-user-atexitโ runs the specified command before app exit and reload. ๐ช--exec-pre-appโ runs the specified command before app loading. ๐ฆ--exec-post-appโ runs the specified command after app loading. โ--exec-as-vassalโ runs the specified command beforeexec()ing the vassal. ๐ง๐ค๐ง--exec-as-emperorโ runs the specified command in the emperor after the vassal has been started. ๐--mount-asapโ mounts filesystem as soon as possible. ๐--mount-pre-jailโ mounts filesystem before jailing. ๐--mount-post-jailโ mounts filesystem after jailing. ๐--mount-in-jailโ mounts filesystem in jail after initialization. ๐ข--mount-as-rootโ mounts filesystem before privileges drop. ๐--mount-as-vassalโ mounts filesystem beforeexec()ing the vassal. ๐ง๐ค๐ง--mount-as-emperorโ mounts filesystem in the emperor after the vassal has been started. ๐--umount-asapโ unmounts filesystem as soon as possible. ๐--umount-pre-jailโ unmounts filesystem before jailing. ๐--umount-post-jailโ unmounts filesystem after jailing. ๐--umount-in-jailโ unmounts filesystem in jail after initialization. ๐ข--umount-as-rootโ unmounts filesystem before privileges drop. ๐--umount-as-vassalโ unmounts filesystem beforeexec()ing the vassal. ๐ง๐ค๐ง--umount-as-emperorโ unmounts filesystem in the emperor after the vassal has been started. ๐--wait-for-interfaceโ waits for the specified network interface to come up before running root hooks. ๐ก--wait-for-interface-timeoutโ sets the timeout forwait-for-interface. โฑ๏ธ--wait-interfaceโ waits for the specified network interface to come up before running root hooks. ๐ก--wait-interface-timeoutโ sets the timeout forwait-for-interface. โฑ๏ธ--wait-for-ifaceโ waits for the specified network interface to come up before running root hooks. ๐ก--wait-for-iface-timeoutโ sets the timeout forwait-for-interface. โฑ๏ธ--wait-ifaceโ waits for the specified network interface to come up before running root hooks. ๐ก--wait-iface-timeoutโ sets the timeout forwait-for-interface. โฑ๏ธ--wait-for-fsโ waits for the specified filesystem item to appear before running root hooks. ๐--wait-for-fileโ waits for the specified file to appear before running root hooks. ๐--wait-for-dirโ waits for the specified directory to appear before running root hooks. ๐--wait-for-mountpointโ waits for the specified mountpoint to appear before running root hooks. ๐--wait-for-fs-timeoutโ sets the timeout forwait-for-fs/file/dir. โฑ๏ธ--wait-for-socketโ waits for the specified socket to be ready before loading apps. ๐--wait-for-socket-timeoutโ sets the timeout forwait-for-socket. โฑ๏ธ--call-asapโ calls the specified function as soon as possible. โก--call-pre-jailโ calls the specified function before jailing. ๐--call-post-jailโ calls the specified function after jailing. ๐--call-in-jailโ calls the specified function in jail after initialization. ๐ข--call-as-rootโ calls the specified function before privileges drop. ๐--call-as-userโ calls the specified function after privileges drop. ๐--call-as-user-atexitโ calls the specified function before app exit and reload. ๐ช--call-pre-appโ calls the specified function before app loading. ๐ฆ--call-post-appโ calls the specified function after app loading. โ--call-as-vassalโ calls the specifiedfunction()beforeexec()ing the vassal. ๐ง๐ค๐ง--call-as-vassal1โ calls the specifiedfunction(char *)beforeexec()ing the vassal. ๐ง๐ค๐ง--call-as-vassal3โ calls the specifiedfunction(char *, uid_t, gid_t)beforeexec()ing the vassal. ๐ง๐ค๐ง--call-as-emperorโ calls the specifiedfunction()in the emperor after the vassal has been started. ๐--call-as-emperor1โ calls the specifiedfunction(char *)in the emperor after the vassal has been started. ๐--call-as-emperor2โ calls the specifiedfunction(char *, pid_t)in the emperor after the vassal has been started. ๐--call-as-emperor4โ calls the specifiedfunction(char *, pid_t, uid_t, gid_t)in the emperor after the vassal has been started. ๐--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โ weight of the instance (used by clustering/lb/subscriptions). โ๏ธ--auto-weightโ sets 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 specified megabytes. ๐--reload-on-rssโ reloads if rss memory is higher than specified megabytes. ๐--evil-reload-on-asโ forces the master to reload a worker if its address space is higher than specified megabytes. ๐--evil-reload-on-rssโ forces the master to reload a worker if its rss memory is higher than 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 reload of (only) 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 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 command when the specified file is modified/touched. Syntax:file command. ๐--touch-signalโ the moment the file you named gets modified/touched, a signal goes off. syntax is<pink>file signal</pink>, bestie ๐ซถ--fs-reloadโ if that filesystem object you're watching changes, you get a graceful reload. polite. respectful. ๐--fs-brutal-reloadโ same idea but the reload is BRUTAL ๐ค no gentleness here--fs-signalโ raises a uwsgi signal when the filesystem object you pointed at gets modified. syntax:<purple>file signal</purple>โจ--check-mountpointโ if a filesystem becomes unreachable, the instance gets destroyed. very much useful for reliable Fuse management ๐ฅ--mountpoint-checkโ literally the same thing: instance gets destroyed when a filesystem is no longer reachable, handy for reliable Fuse management--check-mountโ yep, same vibe: kill the instance if a filesystem goes unreachable (reliable Fuse management, you know the drill)--mount-checkโ one more alias of the above ๐ destroy the instance when a filesystem is no more reachable (useful for reliable Fuse management)--propagate-touchโ okay so this one is described as an over-engineering option for system with flaky signal management ๐ the devs said it themselves, not me--limit-postโ caps the request body. that's it, that's the whole job ๐--no-orphansโ if the master dies, workers get killed automatically. > โ ๏ธ heads up bestie: this can be dangerous for availability, so know what you're doing before you turn it on ๐--prioโ sets the priority of your processes/threads ๐ธ--cpu-affinityโ sets cpu affinity. pin those cores, main character energy ๐--post-bufferingโ sets the size in bytes at which, instead of staying in memory, stuff gets buffered to disk ๐--post-buffering-bufsizeโ sets the buffer size used forread()while you're in post buffering mode--body-read-warningโ sets how much memory allocation (in megabytes) for a request body is allowed before it starts printing a warning at you ๐ญ--upload-progressโ while a file upload is happening,.jsonfiles get created in the directory you specify. progress tracking, slay โจ--no-default-appโ no falling back to the default app. periodt.--manage-script-nameโ automatically rewritesSCRIPT_NAMEandPATH_INFOfor you ๐--ignore-script-nameโ just ignoresSCRIPT_NAMEentirely--catch-exceptionsโ reports the exception as http output. > ๐ฉ the original says discouraged, use only for testing โ so fr fr, testing only--reload-on-exceptionโ an exception gets raised, the worker reloads. simple as that ๐--reload-on-exception-typeโ reloads the worker when a specific exception type is raised ๐ฆ--reload-on-exception-valueโ reloads the worker when a specific exception value is raised--reload-on-exception-reprโ reloads the worker when a specific exception type+value combo (language-specific) is raised ๐--exception-handlerโ adds an exception handler. stack 'em up ๐--enable-metricsโ turns on the metrics subsystem. numbers time ๐--metricโ adds a custom metric of your very own โจ--metric-thresholdโ adds a metric threshold/alarm ๐จ--metric-alarmโ also adds a metric threshold/alarm (same thing, different name, iconic)--alarm-metricโ again: adds a metric threshold/alarm ๐ซถ--metrics-dirโ exports your metrics as text files into the directory you name ๐--metrics-dir-restoreโ restores the last value taken from the metrics dir--metric-dirโ exports metrics as text files to the specified directory (the singular twin of--metrics-dir)--metric-dir-restoreโ restores the last value taken from the metrics dir (same deal, singular name)--metrics-no-coresโ disables generation of all those cores-related metrics ๐--udpโ runs the udp server on the address you give it ๐--statsโ enables the stats server on the specified address ๐--stats-serverโ enables the stats server on the specified address (yes, the same one, she has two names)--stats-httpโ prefixes the stats server json output with http headers--stats-minifiedโ minifies the statistics json output ๐๏ธ--stats-minโ minifies the statistics json output (short king)--stats-pushโ pushes the stats json off to the destination you specify ๐ค--stats-pusher-default-freqโ sets the default frequency of stats pushers โฑ๏ธ--stats-pushers-default-freqโ sets the default frequency of stats pushers (plural version, same energy)--stats-no-coresโ disables generation of cores-related stats--stats-no-metricsโ metrics do not get included in the stats output ๐ โโ๏ธ--multicastโ subscribes you to the multicast group you specify ๐ก--multicast-ttlโ sets multicast ttl--multicast-loopโ sets multicast loop. default is1๐ซ--master-fifoโ enables the master fifo ๐--notify-socketโ enables the notification socket ๐--subscription-notify-socketโ sets the notification socket used for subscriptions--legionโ you become a member of a legion. very โจlegionโจ of you--legion-mcastโ becomes a member of a legion, shortcut style (it's a shortcut for multicast)--legion-nodeโ adds a node to a legion ๐ซ--legion-freqโ sets the frequency of legion packets--legion-toleranceโ sets the tolerance of the legion subsystem--legion-death-on-lord-errorโ if one of the lord hooks fails, the node declares itself dead for however many seconds you specify ๐--legion-skew-toleranceโ sets the clock skew tolerance of the legion subsystem. default is60seconds โฐ--legion-lordโ the action to call on Lord election ๐--legion-unlordโ the action to call on Lord dismiss--legion-setupโ the action to call on legion setup--legion-deathโ the action to call on legion death (that's the shutdown of the instance) โฐ๏ธ--legion-joinโ the action to call on legion join, which is the first time quorum is reached ๐--legion-node-joinedโ the action to call when a new node joins the legion--legion-node-leftโ the action to call when a node leaves the legion ๐--legion-quorumโ sets the quorum of a legion--legion-scrollโ sets the scroll of a legion ๐--legion-scroll-max-sizeโ sets the max size of the legion scroll buffer--legion-scroll-list-max-sizeโ sets the max size of the legion scroll list buffer--subscriptions-sign-checkโ sets the digest algorithm and certificate directory for the secured subscription system ๐--subscriptions-sign-check-toleranceโ sets the maximum tolerance (in seconds) of clock skew for the secured subscription system--subscriptions-sign-skip-uidโ skips the signature check for the uid you specify when unix sockets credentials are in play--subscriptions-credentials-checkโ adds a directory to search for subscriptions key credentials ๐๏ธ--subscriptions-use-credentialsโ enables management ofSCM_CREDENTIALSin subscriptions UNIX sockets--subscription-algoโ sets the load balancing algorithm for the subscription system โ๏ธ--subscription-dotsplitโ tries to fall back to the next part (dot based) in the subscription key--subscribe-toโ subscribes to the subscription server you specify ๐ฌ--stโ subscribes to the specified subscription server (yes,--st, she's tiny but she works)--subscribeโ subscribes to the specified subscription server--subscribe2โ subscribes to the specified subscription server but using the advanced keyval syntax โจ fancy--subscribe-freqโ sends the subscription announce at the interval you set--subscription-toleranceโ sets tolerance for subscription servers--unsubscribe-on-graceful-reloadโ forces the unsubscribe request even during a graceful reload ๐--start-unsubscribedโ configures subscriptions but doesn't send them. useful with master fifo ๐--subscribe-with-modifier1โ forces the specifiedmodifier1when subscribing--snmpโ enables the embedded snmp server ๐ฒ--snmp-communityโ sets the snmp community string--ssl-verboseโ be verbose about SSL errors ๐ฃ--ssl-verify-depthโ sets the maximum certificate verification depth--sniโ adds an SNI-governed SSL context ๐--sni-dirโ checks forcert/key/client_cafiles in the directory you specify, and creates a sni/ssl context on demand ๐ช--sni-dir-ciphersโ sets the ssl ciphers for thesni-diroption--ssl-enable3โ enables SSLv3. > ๐จ it's marked insecure, so pls be careful--ssl-enable-sslv3โ enables SSLv3 (also marked insecure โ same warning, same red flag)--ssl-enable-tlsv1โ enables TLSv1. > ๐จ yep, this one is insecure too--ssl-optionโ sets a raw ssl option. numeric value only ๐ข--sni-regexpโ adds an SNI-governed SSL context, except the key is a regexp ๐ง--ssl-tmp-dirโ stores all the ssl-related temp files in the directory you name--check-intervalโ sets the interval (in seconds) of master checks โณ--forkbomb-delayโ when a forkbomb is detected, sleep for however many seconds you specify ๐ด--binary-pathโ forces the binary path--privileged-binary-patchโ patches the uwsgi binary with a new command, and this happens before privileges drop ๐ฉน--unprivileged-binary-patchโ patches the uwsgi binary with a new command, happening after privileges drop--privileged-binary-patch-argโ patches the uwsgi binary with a new command and arguments, before privileges drop ๐งฐ--unprivileged-binary-patch-argโ patches the uwsgi binary with a new command and arguments, after privileges drop--asyncโ enables async mode with however many cores you specify โก--max-fdโ sets the maximum number of file descriptors. > ๐ requires root privileges, no cap--logtoโ sets the logfile/udp address ๐ชต--logto2โ logs to the file or udp address you specify, but after privileges drop--log-formatโ sets an advanced format for request logging ๐จ--logformatโ sets an advanced format for request logging (the no-dash twin)--logformat-strftimeโ appliesstrftimeto logformat output ๐ฐ๏ธ--log-format-strftimeโ appliesstrftimeto logformat output (dashed edition)--logfile-chownโchowns logfiles--logfile-chmodโchmods logfiles--log-syslogโ logs to syslog ๐ฎ--log-socketโ sends logs to the socket you specify ๐--req-loggerโ sets/appends a request logger--logger-reqโ sets/appends a request logger (same thing, reversed name, iconic)--loggerโ sets/appends a logger ๐ชต--logger-listโ lists enabled loggers ๐--loggers-listโ lists enabled loggers (plural, same list)--threaded-loggerโ offloads log writing to a thread ๐งต--log-encoderโ adds an item into the log encoder chain โ๏ธ--log-req-encoderโ adds an item into the log req encoder chain--log-drainโ drains (aka does not show) log lines matching the regexp you give ๐คซ--log-filterโ shows only log lines matching the regexp you give ๐--log-routeโ if the regexp applied on a logline matches, log to the named logger you specified ๐--log-req-routeโ logs requests to the named logger you specified, if the regexp applied on the logline matches--use-abortโ callsabort()on segfault/fpe. could be useful for generating a core dump ๐ฅ--alarmโ creates a new alarm. syntax:<purple><alarm> <plugin:args></purple>๐จ
--alarm-cheapโ don't make a whole new thread for every curl-based alarm, bestie</p> โ just use the main alarm thread instead. lowkey efficient ๐--alarm-freqโ tune up the anti-loop alarm system. default is 3 seconds. fr fr, that's the number.--alarm-fdโ raise the alarm you specify when an fd is read for read. by default it reads 1 byte; set it to 8 for eventfd. ๐ฆ--alarm-segfaultโ raise the alarm you specify when the segmentation fault handler runs. segfault o'clock ๐ญ--segfault-alarmโ same vibe, same job: raise the alarm you specify when the segmentation fault handler is executed.--alarm-backlogโ raise the alarm you specify when the socket backlog queue is full. she's full, she's done, sound the alarm--backlog-alarmโ yep, the twin: raise the alarm you specify when the socket backlog queue is full.--lq-alarmโ raise the alarm you specify when the socket backlog queue is full. (lq = listen queue, iykyk)--alarm-lqโ raise the alarm you specify when the socket backlog queue is full. same energy, different word order โจ--alarm-listen-queueโ raise the alarm you specify when the socket backlog queue is full. the full-name version, we love a thorough queen--listen-queue-alarmโ raise the alarm you specify when the socket backlog queue is full. her reversed sister ๐--log-alarmโ raise the alarm you specify whenever a log line matches the regexp you gave. syntax:<alarm>[,alarm...] <regexp>. regex girlies rise ๐--alarm-logโ raise the alarm you specify whenever a log line matches the regexp you gave. syntax:<alarm>[,alarm...] <regexp>.--not-log-alarmโ skip the alarm you specify when a log line matches the regexp you gave. syntax:<alarm>[,alarm...] <regexp>. not her, not today ๐--not-alarm-logโ skip the alarm you specify when a log line matches the regexp you gave. syntax:<alarm>[,alarm...] <regexp>.--alarm-listโ list the enabled alarms. show me the receipts ๐--alarms-listโ list the enabled alarms. plural but same, periodt โจ--alarm-msg-sizeโ set the max size of an alarm message. default 8192.
--log-masterโ delegate logging to the master process. let the main character handle it ๐--log-master-bufsizeโ set the buffer size for the master logger. bigger log messages will be truncated โ no cap, they just get cut off ๐--log-master-streamโ create the master logpipe asSOCK_STREAM. streamy โจ--log-master-req-streamโ create the master requests logpipe asSOCK_STREAM.--log-reopenโ reopen the log after a reload. fresh start energy ๐ฆ--log-truncateโ truncate the log on startup. empty it, clean slate, we move ๐ธ--log-maxsizeโ set the maximum logfile size. she has a limit and honestly? boundaries ๐--log-backupnameโ set the logfile name used after rotation. the glow-up name ๐--logdateโ prefix your logs with a date or astrftimestring. timestamp her ๐--log-dateโ prefix your logs with a date or astrftimestring. same thing, dash edition โจ--log-prefixโ prefix your logs with a string of your choosing. brand it, bestie ๐--log-zeroโ log responses that have no body. silence still counts ๐ซถ--log-slowโ log requests slower than the number of milliseconds you specify. slow girls get noticed too ๐ญ--log-4xxโ log requests with a 4xx response. client said no ๐--log-5xxโ log requests with a 5xx response. server said no ๐ญ--log-bigโ log requests bigger than the size you specify. thicc requests only ๐--log-sendfileโ log sendfile requests. sendfile girls, this one's for you ๐ฆ--log-ioerrorโ log requests that hit io errors. io oopsie, logged ๐--log-microsโ report response time in microseconds instead of milliseconds. precision queen โญ--log-x-forwarded-forโ use the ip from theX-Forwarded-Forheader instead ofREMOTE_ADDR. behind a proxy? this is your girl ๐
--master-as-rootโ leave the master process running as root. yes, that root. be so careful, bestie ๐จ--drop-after-initโ run the privileges drop after plugin initialization. superseded bydrop-after-appsโ so like, newer option took her spot ๐--drop-after-appsโ run the privileges drop after apps loading. superseded bymaster-as-root. noted, no cap.--force-cwdโ force the initial working directory to the value you specify. she goes where she's told ๐--binshโ override/bin/sh. it's used by exec hooks, and it always fallback to/bin/sh. the fallback is forever iykyk ๐--chdirโchdirto the directory you specify before apps loading. move in first, unpack later ๐งณ--chdir2โchdirto the directory you specify after apps loading. unpack first, move in after ๐งณ--lazyโ set lazy mode, aka load apps in workers instead of master. let the workers do it ๐--lazy-appsโ load apps in each worker instead of the master. every worker gets her own copy, iconic ๐--cheapโ set cheap mode: spawn workers only after the first request. no requests, no workers, no stress ๐ฆ--cheaperโ set cheaper mode, aka adaptive process spawning. she adapts, she slays ๐--cheaper-initialโ set the initial number of processes to spawn in cheaper mode. the starter pack โญ--cheaper-algoโ choose the algorithm used for adaptive process spawning. pick your fighter ๐--cheaper-stepโ the number of additional processes to spawn at each overload. more workers, more often, periodt ๐--cheaper-overloadโ increase workers after the overload you specify. overloaded? grow, girl ๐ธ--cheaper-algo-listโ list the enabled cheapers algorithms. ๐--cheaper-algos-listโ list the enabled cheapers algorithms. ๐โจ--cheaper-listโ list the 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. chill mode activated ๐ซถ--cheaper-rss-limit-hardโ if total workers resident memory usage is higher than this, try to stop workers. hard mode, she's actually shutting things down ๐ญ--idleโ set idle mode, aka put uWSGI in cheap mode after inactivity. nothing happening? back to sleep ๐ค--die-on-idleโ shut down uWSGI when it's idle. not idle mode โ actually GONE mode ๐--mountโ load an application under a mountpoint. put her where she belongs โจ--worker-mountโ load an application under a mountpoint in the worker you specify, or after workers spawn. worker-specific realness ๐--threadsโ run each worker in prethreaded mode with the number of threads you specify. threads girlies, assemble ๐งต--thread-stacksizeโ set the threads stacksize. give her room to breathe ๐ฆ--threads-stacksizeโ set the threads stacksize. same, plural ๐--thread-stack-sizeโ set the threads stacksize. same, hyphenated โจ--threads-stack-sizeโ set the threads stacksize. same, plural AND hyphenated ๐--vhostโ enable virtualhosting mode, based on theSERVER_NAMEvariable. many hosts, one server, main character energy ๐--vhost-hostโ enable virtualhosting mode, based on theHTTP_HOSTvariable. same butHTTP_HOST๐
--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. jump girlies know ๐--route-ifโ add a route based on a condition. if this, then route โจ--route-if-notโ add a route based on a condition, but the negate version. if NOT this, then route ๐--route-runโ always run the route action you specify. no conditions, she just goes ๐ฅ--final-routeโ add a final route. ๐ฃ๏ธ๐--final-route-statusโ add a final route for the status you specify. ๐--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 final route action you specify. ๐๐ฅ--error-routeโ add an error route. ๐ฃ๏ธ๐--error-route-statusโ add an error route for the status you specify. ๐--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 error route action you specify. ๐๐ฅ--response-routeโ add a response route. ๐ฃ๏ธ๐ธ--response-route-statusโ add a response route for the status you specify. ๐ธ--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 response route action you specify. ๐ธ๐ฅ--router-listโ list the enabled routers. ๐๐--routers-listโ list the enabled routers. ๐๐โจ--error-page-403โ add an error page (html) for the managed 403 response. ๐ซ๐--error-page-404โ add an error page (html) for the managed 404 response. ๐ป๐--error-page-500โ add an error page (html) for the managed 500 response. ๐ฅ๐
--websockets-ping-freqโ set the frequency, in seconds, of the websockets automatic ping packets. ping ping ping ๐--websocket-ping-freqโ set the frequency, in seconds, of the websockets automatic ping packets. ๐โจ--websockets-pong-toleranceโ set the tolerance, in seconds, of the websockets ping/pong subsystem. give her a lil grace period ๐ซถ--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. default 1024.--websocket-max-sizeโ set the max allowed size of websocket messages, in Kbytes. default 1024. same, singular ๐--chunked-input-limitโ set the max size of a chunked input part. default 1MB, in bytes. chunky but make it bounded ๐--chunked-input-timeoutโ set the default timeout for chunked input. clock's ticking bestie โฐ
--clockโ set a clock source. โฐโจ--clock-listโ list the enabled clocks. ๐โฐ--clocks-listโ lists every clock that's actually enabled, so you can see what timers you're working with ๐ฐ๏ธ--add-headerโ auto-adds HTTP headers to the response for you, no manual labour ๐--rem-headerโ auto-removes the HTTP header you name from the response โ๏ธ--del-headerโ same energy: auto-removes the HTTP header you name from the response--collect-headerโ stashes that response header in a request var (syntax:header var) ๐ฅ--response-header-collectโ yeah literally the same thing: stash the response header in a request var (syntax:header var)--pull-headerโ stashes the response header in a request var and yanks it out of the response (syntax:header var) ๐ซณ
--check-staticโ checks for static files in the directory you give it ๐--check-static-docrootโ checks for static files in the requestedDOCUMENT_ROOT--static-checkโ checks for static files in the specified directory (twin of the one above, iykyk)--static-mapโ maps a mountpoint onto a static directory (or a file) ๐บ๏ธ--static-map2โ like--static-mapexcept it completely appends the requested resource to the docroot--static-skip-extโ skips the extension you name during staticfile checks--static-indexโ hunts for the file you name when a directory is requested--static-safeโ skips security checks if the file lives under the path you specify ๐--static-cache-pathsโ drops resolved paths into the uWSGI cache for however many seconds you say--static-cache-paths-nameโ uses the cache you name for static paths--mimefileโ sets the mime types file path (default/etc/mime.types) ๐--mime-fileโ sets the mime types file path (default/etc/mime.types) โ yes bestie, same option, two names
--static-expires-typeโ sets theExpiresheader based on content type โณ--static-expires-type-mtimeโ sets theExpiresheader based on content type and file mtime--static-expiresโ sets theExpiresheader based on a filename regexp--static-expires-mtimeโ sets theExpiresheader based on a filename regexp and file mtime--static-expires-uriโ sets theExpiresheader based on aREQUEST_URIregexp--static-expires-uri-mtimeโ sets theExpiresheader based on aREQUEST_URIregexp and file mtime--static-expires-path-infoโ sets theExpiresheader based on aPATH_INFOregexp--static-expires-path-info-mtimeโ sets theExpiresheader based on aPATH_INFOregexp and file mtime
--static-gzipโ if the regexp you supply matches the static file translation, it goes looking for a gzip version ๐๏ธ--static-gzip-allโ checks for a gzip version of all requested static files--static-gzip-dirโ checks for a gzip version of all requested static files in the dir/prefix you specify--static-gzip-prefixโ checks for a gzip version of all requested static files in the dir/prefix you specify--static-gzip-extโ checks for a gzip version of all requested static files with the ext/suffix you specify--static-gzip-suffixโ checks for a gzip version of all requested static files with the ext/suffix you specify--honour-rangeโ turns on support for the HTTPRangeheader ๐--offload-threadsโ sets how many offload threads to spawn (per-worker, default0)--offload-threadโ sets how many offload threads to spawn (per-worker, default0) โ same vibe, singular spelling--file-serve-modeโ sets the static file serving mode--fileserve-modeโ sets the static file serving mode (the no-dash twin, she's here too)--disable-sendfileโ disablessendfile()and just relies on boring oldread()/write()๐ด--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โ set uWSGI custom mode--envโ set environment variable ๐ฑ--envdirโ loads a daemontools compatible envdir--early-envdirโ loads a daemontools compatible envdir ASAP โก--unenvโ unsets an environment variable ๐ซ--vacuumโ tries to remove all of the generated file/sockets ๐งน--file-writeโ writes the content you give to the file you give (syntax:file=value) before privileges drop--cgroupโ puts the processes into the cgroup you name--cgroup-optโ sets a value in the cgroup option you name--cgroup-dir-modeโ sets permission for the cgroup directory (default is700)--namespaceโ runs in a new namespace under the rootfs you specify--namespace-keep-mountโ keeps the mountpoint you specify in your namespace--nsโ runs in a new namespace under the rootfs you specify--namespace-netโ adds a network namespace ๐--ns-netโ adds a network namespace
--enable-proxy-protocolโ enablesPROXY1protocol support (only for http parsers)--reuse-portโ enables theREUSE_PORTflag on the socket (BSD only, so don't come crying to Linux)--tcp-fast-openโ enables theTCP_FASTOPENflag on TCP sockets with the qlen value you give ๐--tcp-fastopenโ enables theTCP_FASTOPENflag on TCP sockets with the qlen value you give--tcp-fast-open-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported--tcp-fastopen-clientโ usessendto(..., MSG_FASTOPEN, ...)instead ofconnect()if supported
--zergโ attaches to a zerg server ๐พ--zerg-fallbackโ falls back to normal sockets if the zerg server isn't available--zerg-serverโ enables the zerg server on the UNIX socket you specify--cronโ adds a cron task โฐ--cron2โ adds a cron task (key=val syntax)--unique-cronโ adds a unique cron task--cron-harakiriโ sets the maximum time (in seconds) we wait for a cron command to complete ๐ช--legion-cronโ adds a cron task that only runs when the instance is a lord of the legion you specify ๐--cron-legionโ adds a cron task that only runs when the instance is a lord of the legion you specify--unique-legion-cronโ adds a unique cron task that only runs when the instance is a lord of the legion you specify--unique-cron-legionโ adds a unique cron task that only runs when the instance is a lord of the legion you specify
--loopโ selects the uWSGI loop engine ๐--loop-listโ lists enabled loop engines--loops-listโ lists enabled loop engines--worker-execโ runs the command you give as worker--worker-exec2โ runs the command you give as 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); 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 runs only on the legion lord node ๐--legion-smart-attach-daemonโ same as--smart-attach-daemonbut the daemon runs only on the legion lord node--legion-smart-attach-daemon2โ same as--smart-attach-daemon2but the daemon runs only 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--need-pluginsโ loads uWSGI plugins (exits on error)--need-pluginโ 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--plugins-listโ lists enabled plugins--plugin-listโ lists enabled plugins--autoloadโ tries to automatically load plugins when unknown options are found โจ--dlopenโ blindly loads a shared library ๐--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 (immediate version)--exitโ forceexit()of the instance ๐ช--cflagsโ reports uWSGICFLAGS(useful for building external plugins)--dot-hโ dumps theuwsgi.hused for building the core (useful for building external plugins)--config-pyโ dumps theuwsgiconfig.pyused for building the core (useful for building external plugins)--build-pluginโ builds a uWSGI plugin for the current binary ๐จ--versionโ prints the uWSGI version--response-headers-limitโ sets the response header maximum size (default:64k)
and that's a wrap on the whole options list, bestie ๐โจ you made it to the end of a genuinely enormous manpage and I'm so proud of you fr fr ๐ซถ
Quick reminder: every one of those flags above is doing real work in a real binary, so copy them character for character and don't freestyle the spelling. ๐
okay go forth and slay your config, main character energy only ๐
This page ships as uwsgi_jvm version 2.0.31-3, dated March 2026, and it's the manual page for UWSGI_JVM(1) โ see you in the next one, mwah ๐๐ธ
๐ฆ where this page comes from
- ubuntu resolute: uwsgi-plugin-java 2.0.31+3+0.0.7 ยท GPL-3.0-or-later
- ubuntu stonking: uwsgi-plugin-java 2.0.31+3+0.0.7 ยท 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