UWSGI_JVM_OPENJDK11(1)

πŸ“¦ version 2.0.20, in ubuntu jammy

πŸ’– NAME πŸ’–

uwsgi_jvm_openjdk11 β€” fast (pure C), self-healing, developer-friendly WSGI server

okay so bestie, this is the manual for UWSGI_JVM_OPENJDK11(1). We're doing part one, and we are not skipping a single flag. It's giving server main character energy. πŸ’…


✨ SYNOPSIS ✨

uwsgi-core-local [options...]

πŸŽ€ DESCRIPTION πŸŽ€

okay so here's the whole option buffet. Every single one. No crumbs. πŸ“

  • -s, --socket β€” binds to the specified UNIX/TCP socket using the default protocol
  • -s, --uwsgi-socket β€” binds to the specified UNIX/TCP socket using the uwsgi protocol
  • --suwsgi-socket β€” binds to the specified UNIX/TCP socket using the uwsgi protocol over SSL
  • --ssl-socket β€” binds to the specified UNIX/TCP socket using the uwsgi protocol over SSL
  • --http-socket β€” binds to the specified UNIX/TCP socket using the HTTP protocol
  • --http-socket-modifier1 β€” forces the specified modifier1 when using the HTTP protocol
  • --http-socket-modifier2 β€” forces the specified modifier2 when using the HTTP protocol
  • --http11-socket β€” binds to the specified UNIX/TCP socket using the HTTP 1.1 (Keep-Alive) protocol
  • --https-socket β€” binds to the specified UNIX/TCP socket using the HTTPS protocol
  • --https-socket-modifier1 β€” forces the specified modifier1 when using the HTTPS protocol
  • --https-socket-modifier2 β€” forces the specified modifier2 when using the HTTPS protocol
  • --fastcgi-socket β€” binds to the specified UNIX/TCP socket using the FastCGI protocol
  • --fastcgi-nph-socket β€” binds to the specified UNIX/TCP socket using the FastCGI protocol (nph mode)
  • --fastcgi-modifier1 β€” forces the specified modifier1 when using the FastCGI protocol
  • --fastcgi-modifier2 β€” forces the specified modifier2 when using the FastCGI protocol
  • --scgi-socket β€” binds to the specified UNIX/TCP socket using the SCGI protocol
  • --scgi-nph-socket β€” binds to the specified UNIX/TCP socket using the SCGI protocol (nph mode)
  • --scgi-modifier1 β€” forces the specified modifier1 when using the SCGI protocol
  • --scgi-modifier2 β€” forces the specified modifier2 when using the SCGI protocol
  • --raw-socket β€” binds to the specified UNIX/TCP socket using the RAW protocol
  • --raw-modifier1 β€” forces the specified modifier1 when using the RAW protocol
  • --raw-modifier2 β€” forces the specified modifier2 when using the RAW protocol
  • --puwsgi-socket β€” binds to the specified UNIX/TCP socket using the persistent uwsgi protocol (puwsgi)
  • --protocol β€” forces the specified protocol for default sockets
  • --socket-protocol β€” forces the specified protocol for default sockets
  • --shared-socket β€” creates a shared socket for advanced jailing or ipc
  • --undeferred-shared-socket β€” creates a shared socket for advanced jailing or ipc (undeferred mode)
  • -p, --processes β€” spawns the specified number of workers/processes
  • -p, --workers β€” spawns the specified number of workers/processes
  • --thunder-lock β€” serializes accept() usage (if possible)
  • -t, --harakiri β€” sets the harakiri timeout
  • --harakiri-verbose β€” enables verbose mode for harakiri
  • --harakiri-no-arh β€” does not enable harakiri during after-request-hook
  • --no-harakiri-arh β€” does not enable harakiri during after-request-hook
  • --no-harakiri-after-req-hook β€” does not enable harakiri during after-request-hook
  • --backtrace-depth β€” sets the backtrace depth
  • --mule-harakiri β€” sets the harakiri timeout for mule tasks
  • -x, --xmlconfig β€” loads config from an xml file
  • -x, --xml β€” loads config from an xml file
  • --config β€” loads configuration using the pluggable system
  • --fallback-config β€” re-execs uwsgi with the specified config when exit code is 1
  • --strict β€” enables strict mode (placeholder cannot be used)
  • --skip-zero β€” skips check of file descriptor 0
  • --skip-atexit β€” skips atexit hooks (ignored by the master)
  • --skip-atexit-teardown β€” skips atexit teardown (ignored by the master)
  • -S, --set β€” sets a placeholder or an option
  • --set-placeholder β€” sets a placeholder
  • --set-ph β€” sets a placeholder
  • --get β€” prints the specified option value and exits
  • --declare-option β€” declares a new uWSGI custom option
  • --declare-option2 β€” declares a new uWSGI custom option (non-immediate)
  • --resolve β€” places the result of a dns query in the specified placeholder, 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 existance
  • --if-not-file β€” (opt logic) check for file existance
  • --if-dir β€” (opt logic) check for directory existance
  • --if-not-dir β€” (opt logic) check for directory existance
  • --ifdir β€” (opt logic) check for directory existance
  • --if-directory β€” (opt logic) check for directory existance
  • --endif β€” (opt logic) end if
  • --end-if β€” (opt logic) end if
  • --blacklist β€” sets options blacklist context
  • --end-blacklist β€” clears options blacklist context
  • --whitelist β€” sets options whitelist context
  • --end-whitelist β€” clears options whitelist context
  • --ignore-sigpipe β€” does not report (annoying) SIGPIPE
  • --ignore-write-errors β€” does not report (annoying) write()/writev() errors
  • --write-errors-tolerance β€” sets the maximum number of allowed write errors (default: no tolerance)
  • --write-errors-exception-only β€” only raises an exception on write errors, giving control to the app itself
  • --disable-write-exception β€” disables exception generation on write()/writev()
  • --inherit β€” uses the specified file as config template
  • --include β€” includes the specified file as immediate configuration
  • --inject-before β€” injects a text file before the config file (advanced templating)
  • --inject-after β€” injects a text file after the config file (advanced templating)
  • -d, --daemonize β€” daemonizes uWSGI
  • --daemonize2 β€” daemonizes uWSGI after app loading
  • --stop β€” stops an instance
  • --reload β€” reloads an instance
  • --pause β€” pauses an instance
  • --suspend β€” suspends an instance
  • --resume β€” resumes an instance
  • --connect-and-read β€” connects to a socket and waits for data from it
  • --extract β€” fetches/dumps any supported address to stdout
  • -l, --listen β€” sets the socket listen queue size
  • -v, --max-vars β€” sets the amount of internal iovec/vars structures
  • --max-apps β€” sets the maximum number of per-worker applications
  • -b, --buffer-size β€” sets internal buffer size
  • -m, --memory-report β€” enables memory report
  • --profiler β€” enables the specified profiler
  • -c, --cgi-mode β€” forces CGI-mode for plugins supporting it
  • -a, --abstract-socket β€” forces UNIX socket in abstract mode (Linux only)
  • -C, --chmod-socket β€” chmod-socket
  • -C, --chmod β€” chmod-socket
  • --chown-socket β€” chowns unix sockets
  • --umask β€” sets umask
  • --freebind β€” puts socket in freebind mode
  • --map-socket β€” maps sockets to specific workers
  • -T, --enable-threads β€” enables threads
  • --no-threads-wait β€” does not wait for threads cancellation on quit/reload
  • --auto-procname β€” automatically sets processes name to something meaningful
  • --procname-prefix β€” adds a prefix to the process names
  • --procname-prefix-spaced β€” adds a spaced prefix to the process names
  • --procname-append β€” appends a string to process names
  • --procname β€” sets process names
  • --procname-master β€” sets master process name
  • -i, --single-interpreter β€” does not use multiple interpreters (where available)
  • --need-app β€” exits if no app can be loaded
  • -M, --master β€” enables master process
  • --honour-stdin β€” does not remap stdin to /dev/null
  • --emperor β€” runs the Emperor
  • --emperor-proxy-socket β€” forces the vassal to became an Emperor proxy
  • --emperor-wrapper β€” sets a binary wrapper for vassals
  • --emperor-wrapper-override β€” sets a binary wrapper for vassals to try before the default one
  • --emperor-wrapper-fallback β€” sets a binary wrapper for vassals to try as a last resort
  • --emperor-nofollow β€” does not follow symlinks when checking for mtime
  • --emperor-procname β€” sets the Emperor process name
  • --emperor-freq β€” sets the Emperor scan frequency (default 3 seconds)
  • --emperor-required-heartbeat β€” sets the Emperor tolerance about heartbeats
  • --emperor-curse-tolerance β€” sets the Emperor tolerance about cursed vassals
  • --emperor-pidfile β€” writes the Emperor pid in the specified file
  • --emperor-tyrant β€” puts the Emperor in Tyrant mode
  • --emperor-tyrant-nofollow β€” does not follow symlinks when checking for uid/gid in Tyrant mode
  • --emperor-stats β€” runs the Emperor stats server
  • --emperor-stats-server β€” runs the Emperor stats server
  • --early-emperor β€” spawn the emperor as soon as possible, no waiting around πŸ’…
  • --emperor-broodlord β€” run the emperor in BroodLord mode πŸ‘‘
  • --emperor-throttle β€” set the throttling level (in milliseconds) for vassals who are acting up (default 1000)
  • --emperor-max-throttle β€” the max throttling level (in milliseconds) for badly behaved vassals (default 3 minutes) β€” bestie you can only be put in time-out so many times 😭
  • --emperor-magic-exec β€” prefixes vassals' config files with exec:// if they have the executable bit set ✨
  • --emperor-on-demand-extension β€” search for a text file (vassal name + extension) containing the on demand socket name
  • --emperor-on-demand-ext β€” literally the same thing as --emperor-on-demand-extension, just shorter 🫢
  • --emperor-on-demand-directory β€” enable on demand mode binding to the unix socket in the specified directory, named like the vassal + .socket
  • --emperor-on-demand-dir β€” the short version of --emperor-on-demand-directory, same energy πŸ’«
  • --emperor-on-demand-exec β€” use the output of the specified command as the on demand socket name (the vassal name gets passed as the only argument)
  • --emperor-extra-extension β€” lets the specified extension be allowed in the Emperor (the vassal will be called with --config)
  • --emperor-extra-ext β€” yeah it's the same as --emperor-extra-extension, the alias ate πŸ’…
  • --emperor-no-blacklist β€” disable the Emperor's blacklisting subsystem 🚫
  • --emperor-use-clone β€” use clone() instead of fork(), passing the specified unshare() flags
  • --emperor-graceful-shutdown β€” use vassals' graceful shutdown during ragnarok βš”οΈ
  • --emperor-cap β€” set vassals capability
  • --vassals-cap β€” set vassals capability (same thing, different name, we love options)
  • --vassal-cap β€” set vassals capability (third time's the charm, periodt)
  • --imperial-monitor-list β€” list the enabled imperial monitors πŸ‘‘
  • --imperial-monitors-list β€” also lists the enabled imperial monitors, just with an extra s 😌
  • --vassals-inherit β€” add config templates to vassals config (uses --inherit)
  • --vassals-include β€” include config templates in the vassals config (uses --include instead of --inherit)
  • --vassals-inherit-before β€” add config templates to vassals config (uses --inherit, and it parses before the vassal file)
  • --vassals-include-before β€” include config templates in the vassals config (uses --include instead of --inherit, parses before the vassal file)
  • --vassals-start-hook β€” run the specified command before each vassal starts 🏁
  • --vassals-stop-hook β€” run the specified command after a vassal's death πŸ’€
  • --vassal-sos β€” ask the emperor for reinforcement when you're overloaded πŸ†˜
  • --vassal-sos-backlog β€” ask the emperor for SOS if the backlog queue has more items than the value you specified
  • --vassals-set β€” automatically set the specified option (via --set) for every vassal
  • --vassal-set β€” same as --vassals-set, automatically setting that option for every vassal 🫑
  • --heartbeat β€” announce healthiness to the emperor πŸ’“
  • --reload-mercy β€” set the maximum time (in seconds) we wait for workers and other processes to die during reload/shutdown
  • --worker-reload-mercy β€” set the maximum time (in seconds) a worker can take to reload/shutdown (default is 60)
  • --mule-reload-mercy β€” set the maximum time (in seconds) a mule can take to reload/shutdown (default is 60)
  • --exit-on-reload β€” force exit even if a reload was requested πŸšͺ
  • --die-on-term β€” exit instead of doing a brutal reload on SIGTERM
  • --force-gateway β€” force the spawn of the first registered gateway without a master
  • -h|--help β€” show this help πŸ™‹
  • -h|--usage β€” show this help (yes, again, she's generous)
  • --print-sym β€” print the content of the specified binary symbol
  • --print-symbol β€” print the content of the specified binary symbol (spelled out, same vibe)
  • -r|--reaper β€” call waitpid(-1,...) after each request to get rid of zombies 🧟
  • -R|--max-requests β€” reload workers after the specified amount of managed requests
  • --min-worker-lifetime β€” number of seconds a worker must run before being reloaded (default is 60)
  • --max-worker-lifetime β€” reload workers after the specified amount of seconds (default is disabled)
  • --max-worker-lifetime-delta β€” add (worker_id * delta) seconds to the max_worker_lifetime value of each worker
  • -z|--socket-timeout β€” set the internal sockets timeout
  • --no-fd-passing β€” disable file descriptor passing
  • --locks β€” create the specified number of shared locks πŸ”’
  • --lock-engine β€” set the lock engine
  • --ftok β€” set the ipcsem key via ftok() for avoiding duplicates
  • --persistent-ipcsem β€” do not remove ipcsem's on shutdown
  • -A|--sharedarea β€” create a raw shared memory area of the specified pages (note: it supports keyval too)
  • --safe-fd β€” do not close the specified file descriptor
  • --fd-safe β€” do not close the specified file descriptor (same, flipped, iconic)
  • --cache β€” create a shared cache containing the given elements
  • --cache-blocksize β€” set the cache blocksize
  • --cache-store β€” enable persistent cache to disk πŸ’Ύ
  • --cache-store-sync β€” set the frequency of sync for the persistent cache
  • --cache-no-expire β€” disable the auto sweep of expired items
  • --cache-expire-freq β€” set the frequency of cache sweeper scans (default is 3 seconds)
  • --cache-report-freed-items β€” constantly report the cache item freed by the sweeper (use only for debug)
  • --cache-udp-server β€” bind the cache udp server (used only for set/update/delete) to the specified socket
  • --cache-udp-node β€” send cache update/deletion to the specified cache udp server
  • --cache-sync β€” copy the whole content of another uWSGI cache server on server startup
  • --cache-use-last-modified β€” update the last_modified_at timestamp on every cache item modification (default is disabled)
  • --add-cache-item β€” add an item in the cache
  • --load-file-in-cache β€” load a static file in the cache
  • --load-file-in-cache-gzip β€” load a static file in the cache with gzip compression πŸ—œοΈ
  • --cache2 β€” create a new generation shared cache (keyval syntax)
  • --queue β€” enable the shared queue
  • --queue-blocksize β€” set the queue blocksize
  • --queue-store β€” enable persistent queue to disk πŸ’Ύ
  • --queue-store-sync β€” set the frequency of sync for the persistent queue
  • -Q|--spooler β€” run a spooler on the specified directory
  • --spooler-external β€” map spooler requests to a spooler directory managed by an external instance
  • --spooler-ordered β€” try to order the execution of spooler tasks
  • --spooler-chdir β€” chdir() to the specified directory before each spooler task
  • --spooler-processes β€” set the number of processes for spoolers
  • --spooler-quiet β€” do not be verbose with spooler tasks 🀫
  • --spooler-max-tasks β€” set the maximum number of tasks to run before recycling a spooler
  • --spooler-harakiri β€” set the harakiri timeout for spooler tasks
  • --spooler-frequency β€” set the spooler frequency
  • --spooler-freq β€” set the spooler frequency (same, shorter, cute)
  • --mule β€” add a mule 🐴
  • --mules β€” add the specified number of mules
  • --farm β€” add a mule farm 🐴🐴🐴
  • --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 (with the extra s, same deal)
  • --signal-timer β€” add a timer (syntax: <signal> <seconds>)
  • --timer β€” add a timer (syntax: <signal> <seconds>)
  • --signal-rbtimer β€” add a redblack timer (syntax: <signal> <seconds>)
  • --rbtimer β€” add a redblack timer (syntax: <signal> <seconds>)
  • --rpc-max β€” maximum number of rpc slots (default: 64)
  • -L|--disable-logging β€” disable request logging 🀐
  • --flock β€” lock the specified file before starting, and exit if it's locked
  • --flock-wait β€” lock the specified file before starting, and wait if it's locked ⏳
  • --flock2 β€” lock the specified file after logging/daemon setup, exit if it's locked
  • --flock-wait2 β€” lock the specified file after logging/daemon setup, wait if it's locked
  • --pidfile β€” create a pidfile (before privileges drop)
  • --pidfile2 β€” create a pidfile (after privileges drop)
  • --safe-pidfile β€” create a safe pidfile (before privileges drop)
  • --safe-pidfile2 β€” create a safe pidfile (after privileges drop)
  • --chroot β€” chroot() to the specified directory
  • --pivot-root β€” pivot_root() to the specified directories (new_root and put_old must be separated with a space)
  • --pivot_root β€” pivot_root() to the specified directories (new_root and put_old must be separated with a space) β€” underscore edition 🫢
  • --uid β€” setuid to the specified user/uid
  • --gid β€” setgid to the specified group/gid
  • --add-gid β€” add the specified group id to the process credentials
  • --immediate-uid β€” setuid to the specified user/uid IMMEDIATELY ⚑
  • --immediate-gid β€” setgid to the specified group/gid IMMEDIATELY ⚑
  • --no-initgroups β€” disable the additional groups set via initgroups()
  • --cap β€” set process capability
  • --unshare β€” unshare() part of the processes and put it in a new namespace
  • --unshare2 β€” unshare() part of the processes and put it in a new namespace after the rootfs change
  • --setns-socket β€” expose a unix socket returning namespace fds from /proc/self/ns
  • --setns-socket-skip β€” skip the specified entry when sending setns file descriptors
  • --setns-skip β€” skip the specified entry when sending setns file descriptors (yep, same)
  • --setns β€” join a namespace created by an external uWSGI instance
  • --setns-preopen β€” open /proc/self/ns as soon as possible and cache fds
  • --jailed β€” mark the instance as jailed (forces the execution of post_jail hooks) ⛓️
  • --refork β€” fork() again after privileges drop. Useful for jailing systems
  • --re-fork β€” fork() again after privileges drop. Useful for jailing systems (hyphenated twin)
  • --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 (yes bestie, the hyphen version again πŸ’…)
  • --refork-post-jail β€” fork() one more time after jailing, bestie. Super handy for jailing systems. 🫢
  • --re-fork-post-jail β€” okay so this is literally the same thing, fork() again after jailing, useful for jailing systems. two names, one vibe πŸ’…
  • --hook-asap β€” run the hook you picked as soon as possible
  • --hook-pre-jail β€” run that hook before jailing ✨
  • --hook-post-jail β€” run that hook after jailing
  • --hook-in-jail β€” run the hook in jail, right after initialization
  • --hook-as-root β€” run the hook before privileges drop πŸ‘‘
  • --hook-as-user β€” run the hook after privileges drop
  • --hook-as-user-atexit β€” run the hook before app exit and reload
  • --hook-pre-app β€” run the hook before app loading
  • --hook-post-app β€” run the hook after app loading
  • --hook-post-fork β€” run the hook after every single fork πŸ”
  • --hook-accepting β€” run the hook after each worker enters the accepting phase
  • --hook-accepting1 β€” run the hook after the first worker enters the accepting phase
  • --hook-accepting-once β€” run the hook after each worker enters the accepting phase, but only once per-instance
  • --hook-accepting1-once β€” run the hook after the first worker enters the accepting phase, once per instance
  • --hook-master-start β€” run the hook when the Master starts πŸ‘‘
  • --hook-touch β€” run the hook when the file you name gets touched. syntax: <file> <action> πŸ‘†
  • --hook-emperor-start β€” run the hook when the Emperor starts
  • --hook-emperor-stop β€” run the hook when the Emperor sends a stop message
  • --hook-emperor-reload β€” run the hook when the Emperor sends a reload message
  • --hook-emperor-lost β€” run the hook when the Emperor connection is lost 😭
  • --hook-as-vassal β€” run the hook before exec()ing the vassal
  • --hook-as-emperor β€” run the hook in the emperor after the vassal has been started
  • --hook-as-mule β€” run the hook in each mule 🐴
  • --hook-as-gateway β€” run the hook in each gateway

  • --after-request-hook β€” run the function/symbol you picked after every request
  • --after-request-call β€” run the function/symbol you picked after every request (yes, same energy, fr fr)

  • --exec-asap β€” run the command as soon as possible
  • --exec-pre-jail β€” run the command before jailing
  • --exec-post-jail β€” run the command after jailing
  • --exec-in-jail β€” run the command in jail after initialization
  • --exec-as-root β€” run the command before privileges drop πŸ‘‘
  • --exec-as-user β€” run the command after privileges drop
  • --exec-as-user-atexit β€” run the command before app exit and reload
  • --exec-pre-app β€” run the command before app loading
  • --exec-post-app β€” run the command after app loading
  • --exec-as-vassal β€” run the command before exec()ing the vassal
  • --exec-as-emperor β€” run the command in the emperor after the vassal has been started

  • --mount-asap β€” mount the filesystem as soon as possible
  • --mount-pre-jail β€” mount the filesystem before jailing
  • --mount-post-jail β€” mount the filesystem after jailing
  • --mount-in-jail β€” mount the filesystem in jail after initialization
  • --mount-as-root β€” mount the filesystem before privileges drop πŸ‘‘
  • --mount-as-vassal β€” mount the filesystem before exec()ing the vassal
  • --mount-as-emperor β€” mount the filesystem in the emperor after the vassal has been started
  • --umount-asap β€” unmount the filesystem asap
  • --umount-pre-jail β€” unmount before jailing
  • --umount-post-jail β€” unmount after jailing
  • --umount-in-jail β€” unmount in jail after initialization
  • --umount-as-root β€” unmount before privileges drop πŸ‘‘
  • --umount-as-vassal β€” unmount before exec()ing the vassal
  • --umount-as-emperor β€” unmount in the emperor after the vassal has been started

  • --wait-for-interface β€” wait for the network interface you named to come up before running root hooks 🌐
  • --wait-for-interface-timeout β€” set the timeout for wait-for-interface ⏳
  • --wait-interface β€” wait for the network interface to come up before running root hooks (alias energy)
  • --wait-interface-timeout β€” set the timeout for wait-for-interface
  • --wait-for-iface β€” wait for the network interface to come up before running root hooks
  • --wait-for-iface-timeout β€” set the timeout for wait-for-interface
  • --wait-iface β€” wait for the network interface to come up before running root hooks
  • --wait-iface-timeout β€” set the timeout for wait-for-interface
  • --wait-for-fs β€” wait for the filesystem item to appear before running root hooks
  • --wait-for-file β€” wait for the file to appear before running root hooks πŸ“„
  • --wait-for-dir β€” wait for the directory to appear before running root hooks πŸ“
  • --wait-for-mountpoint β€” wait for the mountpoint to appear before running root hooks
  • --wait-for-fs-timeout β€” set the timeout for wait-for-fs/file/dir
  • --wait-for-socket β€” wait for the socket to be ready before loading apps πŸ”Œ
  • --wait-for-socket-timeout β€” set the timeout for wait-for-socket

  • --call-asap β€” call the function as soon as possible
  • --call-pre-jail β€” call the function before jailing
  • --call-post-jail β€” call the function after jailing
  • --call-in-jail β€” call the function in jail after initialization
  • --call-as-root β€” call the function before privileges drop πŸ‘‘
  • --call-as-user β€” call the function after privileges drop
  • --call-as-user-atexit β€” call the function before app exit and reload
  • --call-pre-app β€” call the function before app loading
  • --call-post-app β€” call the function after app loading
  • --call-as-vassal β€” call the function () before exec()ing the vassal
  • --call-as-vassal1 β€” call the function (char *) before exec()ing the vassal
  • --call-as-vassal3 β€” call the function (char *, uid_t, gid_t) before exec()ing the vassal
  • --call-as-emperor β€” call the function () in the emperor after the vassal has been started
  • --call-as-emperor1 β€” call the function (char *) in the emperor after the vassal has been started
  • --call-as-emperor2 β€” call the function (char *, pid_t) in the emperor after the vassal has been started
  • --call-as-emperor4 β€” call the function (char *, pid_t, uid_t, gid_t) in the emperor after the vassal has been started

  • --ini β€” load config from an ini file
  • -y|--yaml β€” load config from a yaml file
  • -y|--yml β€” load config from a yaml file
  • -j|--json β€” load config from a json file
  • -j|--js β€” load config from a json file

  • --weight β€” the weight of the instance (used by clustering/lb/subscriptions) βš–οΈ
  • --auto-weight β€” set the weight of the instance automatically (used by clustering/lb/subscriptions)
  • --no-server β€” force no-server mode
  • --command-mode β€” force command mode
  • --no-defer-accept β€” disable deferred-accept on sockets
  • --tcp-nodelay β€” enable TCP NODELAY on each request
  • --so-keepalive β€” enable TCP KEEPALIVEs
  • --so-send-timeout β€” set SO_SNDTIMEO
  • --socket-send-timeout β€” set SO_SNDTIMEO
  • --so-write-timeout β€” set SO_SNDTIMEO
  • --socket-write-timeout β€” set SO_SNDTIMEO
  • --socket-sndbuf β€” set SO_SNDBUF
  • --socket-rcvbuf β€” set SO_RCVBUF
  • --shutdown-sockets β€” force calling shutdown() in addition to close() when sockets are destroyed
  • --limit-as β€” limit processes address space/vsz
  • --limit-nproc β€” limit the number of spawnable processes
  • --reload-on-as β€” reload if address space is higher than the specified megabytes
  • --reload-on-rss β€” reload if rss memory is higher than the specified megabytes
  • --evil-reload-on-as β€” force the master to reload a worker if its address space is higher than the specified megabytes 😈
  • --evil-reload-on-rss β€” force the master to reload a worker if its rss memory is higher than the specified megabytes 😈
  • --mem-collector-freq β€” set the memory collector frequency when evil reloads are in place
  • --reload-on-fd β€” reload if the specified file descriptor is ready
  • --brutal-reload-on-fd β€” brutal reload if the specified file descriptor is ready πŸ’€
  • --ksm β€” enable Linux KSM
  • --pcre-jit β€” enable pcre jit (if available)
  • --never-swap β€” lock all memory pages, avoiding swapping πŸ”’
  • --touch-reload β€” reload uWSGI if the specified file is modified/touched
  • --touch-workers-reload β€” trigger reload of (only) workers if the specified file is modified/touched
  • --touch-mules-reload β€” reload mules if the specified file is modified/touched 🐴
  • --touch-spoolers-reload β€” reload spoolers if the specified file is modified/touched
  • --touch-chain-reload β€” trigger chain reload if the specified file is modified/touched
  • --touch-logrotate β€” trigger logrotation if the specified file is modified/touched
  • --touch-logreopen β€” trigger log reopen if the specified file is modified/touched
  • --touch-exec β€” run a command when the specified file is modified/touched. syntax: file command
  • --touch-signal β€” signal when the specified file is modified/touched. syntax: file signal
  • --fs-reload β€” graceful reload when the specified filesystem object is modified
  • --fs-brutal-reload β€” brutal reload when the specified filesystem object is modified πŸ’€
  • --fs-signal β€” raise a uwsgi signal when the specified filesystem object is modified. syntax: file signal
  • --check-mountpoint β€” nukes the instance the second a filesystem stops being reachable. fr fr this is the move when you need reliable Fuse management πŸ’…
  • --mountpoint-check β€” same energy, same job: instance gets destroyed if a filesystem is no more reachable (again, reliable Fuse management, bestie) 🫢
  • --check-mount β€” yep, the trilogy continues: kill the instance when a filesystem is no longer reachable, reliable Fuse management, you know the vibe
  • --mount-check β€” the fourth twin 😭 destroy the instance if a filesystem is no more reachable (reliable Fuse management, iconic behaviour)

  • --propagate-touch β€” this one is over-engineering for systems with flaky signal management. it's giving "solving a problem you made for yourself" πŸ’€
  • --limit-post β€” caps the request body
  • --no-orphans β€” auto-kills workers if the master dies. sounds cute, is dangerous for availability, so know what you're doing πŸ™ˆ
  • --prio β€” set processes/threads priority
  • --cpu-affinity β€” set cpu affinity
  • --post-buffering β€” set the size in bytes after which it'll buffer to disk instead of memory
  • --post-buffering-bufsize β€” set the buffer size for read() while in post buffering mode
  • --body-read-warning β€” set how much memory allocation (in megabytes) for the request body is allowed before it starts printing a warning
  • --upload-progress β€” enables creation of .json files in the directory you specify, while a file upload is happening ✨
  • --no-default-app β€” do not fallback to the default app
  • --manage-script-name β€” automatically rewrite SCRIPT_NAME and PATH_INFO
  • --ignore-script-name β€” ignore SCRIPT_NAME entirely
  • --catch-exceptions β€” report exceptions as http output. the manpage literally says discouraged, use only for testing, so like… testing only okay?? 😭
  • --reload-on-exception β€” reloads a worker when an exception is raised
  • --reload-on-exception-type β€” reloads a worker when a specific exception type is raised
  • --reload-on-exception-value β€” reloads a worker when a specific exception value is raised
  • --reload-on-exception-repr β€” reloads a worker when a specific exception type+value (language-specific) is raised
  • --exception-handler β€” add an exception handler

  • --enable-metrics β€” turns on the metrics subsystem πŸ‘‘
  • --metric β€” add a custom metric
  • --metric-threshold β€” add a metric threshold/alarm
  • --metric-alarm β€” add a metric threshold/alarm (yes bestie, same thing, we love an alias)
  • --alarm-metric β€” add a metric threshold/alarm (the third name for the same slay)
  • --metrics-dir β€” export metrics as text files into the directory you name
  • --metrics-dir-restore β€” restore the last value taken from the metrics dir
  • --metric-dir β€” export metrics as text files to the specified directory
  • --metric-dir-restore β€” restore last value taken from the metrics dir (yep, the short-name twin)
  • --metrics-no-cores β€” disable generation of cores-related metrics

  • --udp β€” run the udp server on the address you specify
  • --stats β€” enable the stats server on the specified address
  • --stats-server β€” enable the stats server on the specified address (same thing, different font πŸ’…)
  • --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 queen)
  • --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 version, no notes)
  • --stats-no-cores β€” disable generation of cores-related stats
  • --stats-no-metrics β€” do not include metrics in the stats output
  • --multicast β€” subscribe to the specified multicast group
  • --multicast-ttl β€” set multicast ttl
  • --multicast-loop β€” set multicast loop (default 1)
  • --master-fifo β€” enable the master fifo
  • --notify-socket β€” enable the notification socket
  • --subscription-notify-socket β€” set the notification socket for subscriptions

okay this next bit is the legion era and honestly it's giving cult but make it infrastructure 🧚

  • --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 as a dead node for the specified amount of seconds if one of the lord hooks fails πŸ’€
  • --legion-skew-tolerance β€” set the clock skew tolerance of the legion subsystem (default 30 seconds)
  • --legion-lord β€” action to call on Lord election
  • --legion-unlord β€” action to call on Lord dismiss
  • --legion-setup β€” action to call on legion setup
  • --legion-death β€” action to call on legion death (shutdown of the instance)
  • --legion-join β€” action to call on legion join (first time quorum is reached)
  • --legion-node-joined β€” action to call on a new node joining 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 specified uid when using unix sockets credentials
  • --subscriptions-credentials-check β€” add a directory to search for subscriptions key credentials
  • --subscriptions-use-credentials β€” enable management of SCM_CREDENTIALS in subscriptions UNIX sockets
  • --subscription-algo β€” set the load balancing algorithm for the subscription system
  • --subscription-dotsplit β€” try to fallback to the next part (dot based) in the subscription key
  • --subscribe-to β€” subscribe to the specified subscription server
  • --st β€” subscribe to the specified subscription server (tiny name, big job 🌸)
  • --subscribe β€” subscribe to the specified subscription server
  • --subscribe2 β€” subscribe to the specified subscription server using advanced keyval syntax
  • --subscribe-freq β€” send subscription announce at the specified interval
  • --subscription-tolerance β€” set tolerance for subscription servers
  • --unsubscribe-on-graceful-reload β€” force an unsubscribe request even during a graceful reload
  • --start-unsubscribed β€” configure subscriptions but don't send them (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 maximum certificate verification depth
  • --sni β€” add an SNI-governed SSL context
  • --sni-dir β€” check for cert/key/client_ca files in the specified directory and create a sni/ssl context on demand ✨
  • --sni-dir-ciphers β€” set ssl ciphers for the sni-dir option
  • --ssl-enable3 β€” enable SSLv3 (insecure) 🚨
  • --ssl-enable-sslv3 β€” enable SSLv3 (insecure)
  • --ssl-enable-tlsv1 β€” enable TLSv1 (insecure)
  • --ssl-option β€” set a raw ssl option (numeric value)
  • --sni-regexp β€” add an SNI-governed SSL context (the key is a regexp)
  • --ssl-tmp-dir β€” store ssl-related temp files in the specified directory
bestie the insecure tags are not a vibe, they're a warning. the manpage says insecure, so it means insecure. do not enable these for funsies 😭

  • --check-interval β€” set the interval (in seconds) of master checks
  • --forkbomb-delay β€” sleep for the specified number of seconds when a forkbomb is detected 😳
  • --binary-path β€” force the binary path
  • --privileged-binary-patch β€” patch the uwsgi binary with a new command (before privileges drop)
  • --unprivileged-binary-patch β€” patch the uwsgi binary with a new command (after privileges drop)
  • --privileged-binary-patch-arg β€” patch the uwsgi binary with a new command and arguments (before privileges drop)
  • --unprivileged-binary-patch-arg β€” patch the uwsgi binary with a new command and arguments (after privileges drop)
  • --async β€” enable async mode with the specified cores
  • --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 advanced format for request logging
  • --logformat β€” set advanced format for request logging (same, shorter)
  • --logformat-strftime β€” apply strftime to logformat output
  • --log-format-strftime β€” apply strftime to logformat output
  • --logfile-chown β€” chown logfiles
  • --logfile-chmod β€” chmod logfiles
  • --log-syslog β€” log to syslog
  • --log-socket β€” send logs to the specified socket
  • --req-logger β€” set/append a request logger
  • --logger-req β€” set/append a request logger (flipped name, same energy)
  • --logger β€” set/append a logger
  • --logger-list β€” list enabled loggers
  • --loggers-list β€” list enabled loggers
  • --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 (do not show) log lines matching the specified regexp
  • --log-filter β€” show only log lines matching the specified regexp
  • --log-route β€” log to the specified named logger if the regexp applied on the logline matches
  • --log-req-route β€” log requests to the specified named logger if the regexp applied on the logline matches

  • --use-abort β€” call abort() on segfault/fpe, could be useful for generating a core dump
  • --alarm β€” create a new alarm, syntax: <alarm> <plugin:args>
  • --alarm-cheap β€” use the main alarm thread rather than creating dedicated threads for curl-based alarms
  • --alarm-freq β€” tune the anti-loop alarm system (default 3 seconds)
  • --alarm-fd β€” raise the specified alarm when an fd is read for read (by default it reads 1 byte, set 8 for eventfd)
  • --alarm-segfault β€” raise the specified alarm when the segmentation fault handler is executed
  • --segfault-alarm β€” raise the specified alarm when the segmentation fault handler is executed πŸ’€
  • --alarm-backlog β€” raise the specified alarm when the socket backlog queue is full 🫠
  • --backlog-alarm β€” raise the specified alarm when the socket backlog queue is full 🫠
  • --lq-alarm β€” raise the specified alarm when the socket backlog queue is full 🫠
  • --alarm-lq β€” raise the specified alarm when the socket backlog queue is full 🫠
  • --alarm-listen-queue β€” raise the specified alarm when the socket backlog queue is full 🫠
  • --listen-queue-alarm β€” raise the specified alarm when the socket backlog queue is full 🫠
  • --log-alarm β€” raise the specified alarm when a log line matches the specified regexp β€” syntax: <alarm>[,alarm...] <regexp> πŸ‘‘
  • --alarm-log β€” raise the specified alarm when a log line matches the specified regexp β€” syntax: <alarm>[,alarm...] <regexp> πŸ‘‘
  • --not-log-alarm β€” skip the specified alarm when a log line matches the specified regexp β€” syntax: <alarm>[,alarm...] <regexp> πŸ™ˆ
  • --not-alarm-log β€” skip the specified alarm when a log line matches the specified regexp β€” syntax: <alarm>[,alarm...] <regexp> πŸ™ˆ
  • --alarm-list β€” list enabled alarms ✨
  • --alarms-list β€” list enabled alarms ✨
  • --alarm-msg-size β€” set the max size of an alarm message (default 8192) πŸ’…

  • --log-master β€” delegate logging to master process πŸ‘‘
  • --log-master-bufsize β€” set the buffer size for the master logger. bigger log messages will be truncated 😭
  • --log-master-stream β€” create the master logpipe as SOCK_STREAM πŸ”Œ
  • --log-master-req-stream β€” create the master requests logpipe as SOCK_STREAM πŸ”Œ
  • --log-reopen β€” reopen log after reload πŸ”
  • --log-truncate β€” truncate log on startup βœ‚οΈ
  • --log-maxsize β€” set maximum logfile size πŸ“
  • --log-backupname β€” set logfile name after rotation πŸŒ€
  • --logdate β€” prefix logs with date or a strftime string πŸ“…
  • --log-date β€” prefix logs with date or a strftime string πŸ“…
  • --log-prefix β€” prefix logs with a string 🏷️
  • --log-zero β€” log responses without body πŸ«₯
  • --log-slow β€” log requests slower than the specified number of milliseconds 🐌
  • --log-4xx β€” log requests with a 4xx response 🚨
  • --log-5xx β€” log requests with a 5xx response πŸ’₯
  • --log-big β€” log requests bigger than the specified size 🐘
  • --log-sendfile β€” log sendfile requests πŸ“¦
  • --log-ioerror β€” log requests with io errors πŸ’€
  • --log-micros β€” report response time in microseconds instead of milliseconds ⏱️
  • --log-x-forwarded-for β€” use the ip from X-Forwarded-For header instead of REMOTE_ADDR 🌐

  • --master-as-root β€” leave master process running as root πŸ‘‘
  • --drop-after-init β€” run privileges drop after plugin initialization, superseded by drop-after-apps πŸ”½
  • --drop-after-apps β€” run privileges drop after apps loading, superseded by master-as-root πŸ”½
  • --force-cwd β€” force the initial working directory to the specified value πŸ“‚
  • --binsh β€” override /bin/sh (used by exec hooks, it always fallback to /bin/sh) 🐚
  • --chdir β€” chdir to specified directory before apps loading πŸ“
  • --chdir2 β€” chdir to specified directory after apps loading πŸ“
  • --lazy β€” set lazy mode (load apps in workers instead of master) 😴
  • --lazy-apps β€” load apps in each worker instead of the master 😴
  • --cheap β€” set cheap mode (spawn workers only after the first request) πŸͺ™
  • --cheaper β€” set cheaper mode (adaptive process spawning) πŸ“‰
  • --cheaper-initial β€” set the initial number of processes to spawn in cheaper mode 🐣
  • --cheaper-algo β€” choose the algorithm used for adaptive process spawning 🧠
  • --cheaper-step β€” number of additional processes to spawn at each overload πŸͺœ
  • --cheaper-overload β€” increase workers after 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 total resident memory usage of all workers is higher than this limit πŸ›‘
  • --cheaper-rss-limit-hard β€” if total workers resident memory usage is higher try to stop workers πŸ›‘
  • --idle β€” set idle mode (put uWSGI in cheap mode after inactivity) πŸ’€
  • --die-on-idle β€” shutdown uWSGI when idle ☠️
  • --mount β€” load application under mountpoint πŸ—‚οΈ
  • --worker-mount β€” load application under 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 πŸ“š
  • --vhost β€” enable virtualhosting mode (based on SERVER_NAME variable) 🏠
  • --vhost-host β€” enable virtualhosting mode (based on HTTP_HOST variable) 🏠

  • --route β€” add a route πŸ›£οΈ
  • --route-host β€” add a route based on Host header 🏷️
  • --route-uri β€” add a route based on REQUEST_URI πŸ”—
  • --route-qs β€” add a route based on QUERY_STRING ❓
  • --route-remote-addr β€” add a route based on REMOTE_ADDR 🌐
  • --route-user-agent β€” add a route based on HTTP_USER_AGENT πŸ•΅οΈ
  • --route-remote-user β€” add a route based on REMOTE_USER πŸ‘€
  • --route-referer β€” add a route based on HTTP_REFERER ↩️
  • --route-label β€” add a routing label (for use with goto) 🏷️
  • --route-if β€” add a route based on condition πŸ€”
  • --route-if-not β€” add a route based on condition (negate version) 🚫
  • --route-run β€” always run the specified route action πŸƒ
  • --final-route β€” add a final route 🏁
  • --final-route-status β€” add a final route for the specified status πŸ“Œ
  • --final-route-host β€” add a final route based on Host header 🏷️
  • --final-route-uri β€” add a final route based on REQUEST_URI πŸ”—
  • --final-route-qs β€” add a final route based on QUERY_STRING ❓
  • --final-route-remote-addr β€” add a final route based on REMOTE_ADDR 🌐
  • --final-route-user-agent β€” add a final route based on HTTP_USER_AGENT πŸ•΅οΈ
  • --final-route-remote-user β€” add a final route based on REMOTE_USER πŸ‘€
  • --final-route-referer β€” add a final route based on HTTP_REFERER ↩️
  • --final-route-label β€” add a final routing label (for use with goto) 🏷️
  • --final-route-if β€” add a final route based on condition πŸ€”
  • --final-route-if-not β€” add a final route based on 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 Host header 🏷️
  • --error-route-uri β€” add an error route based on REQUEST_URI πŸ”—
  • --error-route-qs β€” add an error route based on QUERY_STRING ❓
  • --error-route-remote-addr β€” add an error route based on REMOTE_ADDR 🌐
  • --error-route-user-agent β€” add an error route based on HTTP_USER_AGENT πŸ•΅οΈ
  • --error-route-remote-user β€” add an error route based on REMOTE_USER πŸ‘€
  • --error-route-referer β€” add an error route based on HTTP_REFERER ↩️
  • --error-route-label β€” add an error routing label (for use with goto) 🏷️
  • --error-route-if β€” add an error route based on condition πŸ€”
  • --error-route-if-not β€” add an error route based on 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 Host header 🏷️
  • --response-route-uri β€” add a response route based on REQUEST_URI πŸ”—
  • --response-route-qs β€” add a response route based on QUERY_STRING ❓
  • --response-route-remote-addr β€” add a response route based on REMOTE_ADDR 🌐
  • --response-route-user-agent β€” add a response route based on HTTP_USER_AGENT πŸ•΅οΈ
  • --response-route-remote-user β€” add a response route based on REMOTE_USER πŸ‘€
  • --response-route-referer β€” add a response route based on HTTP_REFERER ↩️
  • --response-route-label β€” add a response routing label (for use with goto) 🏷️
  • --response-route-if β€” add a response route based on condition πŸ€”
  • --response-route-if-not β€” add a response route based on 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 managed 403 response 🚫
  • --error-page-404 β€” add an error page (html) for managed 404 response πŸ”
  • --error-page-500 β€” add an error page (html) for 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 websockets ping/pong subsystem πŸ“
  • --websocket-pong-tolerance β€” set the tolerance (in seconds) of 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) πŸ“¦
  • --chunked-input-limit β€” set the max size of a chunked input part (default 1MB, in bytes) πŸ“
  • --chunked-input-timeout β€” set default timeout for chunked input ⏳
  • --clock β€” set a clock source πŸ•°οΈ
  • --clock-list β€” list enabled clocks πŸ•°οΈ
  • --clocks-list β€” list enabled clocks πŸ•°οΈ
  • --add-header β€” automatically add HTTP headers to response βž•
  • --rem-header β€” automatically remove specified HTTP header from the response βž–
  • --del-header β€” automatically remove specified HTTP header from the response βž–
  • --collect-header β€” store the specified response header in a request var (syntax: header var) πŸ—ƒοΈ
  • --response-header-collect β€” stash that response header in a request var, bestie (syntax: header var). πŸ’…
  • --pull-header β€” same as above but it also removes the header from the response β€” sneaky but useful (syntax: header var). ✨
  • --check-static β€” check for static files in the directory you specify. πŸŽ€
  • --check-static-docroot β€” check for static files in the requested DOCUMENT_ROOT. πŸ¦‹
  • --static-check β€” check for static files in the specified directory (yes, it's basically the same vibe as --check-static). 🌸
  • --static-map β€” map a mountpoint to a static directory (or file). iconic. πŸ’–
  • --static-map2 β€” like --static-map but it completely appends the requested resource to the docroot, no cap. πŸ”₯
  • --static-skip-ext β€” skip the specified extension when doing static file checks. πŸ™ˆ
  • --static-index β€” if someone requests a directory, search for the file you specify. πŸ‘‘
  • --static-safe β€” skip security checks if the file lives under the path you give. πŸ’€
  • --static-cache-paths β€” put resolved paths in the uWSGI cache for the number of seconds you specify. ⭐
  • --static-cache-paths-name β€” use the cache you name for static paths. 🌈
  • --mimefile β€” set the mime types file path (default is /etc/mime.types). πŸ“
  • --mime-file β€” same thing, just the other spelling: set the mime types file path (default /etc/mime.types). 🧚
  • --static-expires-type β€” set the Expires header based on content type. πŸ’œ
  • --static-expires-type-mtime β€” set the Expires header based on content type and file mtime. ✨
  • --static-expires β€” set the Expires header based on a filename regexp. πŸŽ€
  • --static-expires-mtime β€” set the Expires header based on filename regexp and file mtime. πŸ¦‹
  • --static-expires-uri β€” set the Expires header based on a REQUEST_URI regexp. 🌸
  • --static-expires-uri-mtime β€” set the Expires header based on REQUEST_URI regexp and file mtime. πŸ’–
  • --static-expires-path-info β€” set the Expires header based on a PATH_INFO regexp. πŸ”₯
  • --static-expires-path-info-mtime β€” set the Expires header based on PATH_INFO regexp and file mtime. πŸ‘‘
  • --static-gzip β€” if the regexp you supply matches the static file translation, it'll look for a gzip version. πŸ’€
  • --static-gzip-all β€” check for a gzip version of all requested static files. ⭐
  • --static-gzip-dir β€” check for a gzip version of all requested static files in the specified dir/prefix. 🌈
  • --static-gzip-prefix β€” same as above: check for a gzip version of all requested static files in the specified dir/prefix. πŸ“
  • --static-gzip-ext β€” check for a gzip version of all requested static files with the specified ext/suffix. 🧚
  • --static-gzip-suffix β€” check for a gzip version of all requested static files with the specified ext/suffix. πŸ’œ
  • --honour-range β€” enable support for the HTTP Range header. ✨
  • --offload-threads β€” set the number of offload threads to spawn (per-worker, default 0). πŸŽ€
  • --offload-thread β€” same vibe: set the number of offload threads to spawn (per-worker, default 0). πŸ¦‹
  • --file-serve-mode β€” set static file serving mode. 🌸
  • --fileserve-mode β€” set static file serving mode (just the other spelling). πŸ’–
  • --disable-sendfile β€” disable sendfile() and rely on boring read()/write(). πŸ”₯
  • --check-cache β€” check for response data in the specified cache (empty for the default cache). πŸ‘‘
  • --close-on-exec β€” set close-on-exec on connection sockets (could be required for spawning processes in requests). πŸ’€
  • --close-on-exec2 β€” set close-on-exec on server sockets (could be required for spawning processes in requests). ⭐
  • --mode β€” set uWSGI custom mode. 🌈
  • --env β€” set environment variable. πŸ“
  • --envdir β€” load a daemontools compatible envdir. 🧚
  • --early-envdir β€” load a daemontools compatible envdir ASAP. πŸ’œ
  • --unenv β€” unset environment variable. ✨
  • --vacuum β€” try to remove all of the generated file/sockets. πŸŽ€
  • --file-write β€” write the specified content to the specified file (syntax: file=value) before privileges drop. πŸ¦‹
  • --cgroup β€” put the processes in the specified cgroup. 🌸
  • --cgroup-opt β€” set a value in the specified cgroup option. πŸ’–
  • --cgroup-dir-mode β€” set permission for cgroup directory (default is 700). πŸ”₯
  • --namespace β€” run in a new namespace under the specified rootfs. πŸ‘‘
  • --namespace-keep-mount β€” keep the specified mountpoint in your namespace. πŸ’€
  • --ns β€” run in a new namespace under the specified rootfs (yep, same as --namespace). ⭐
  • --namespace-net β€” add network namespace. 🌈
  • --ns-net β€” add network namespace (same thing, shorter name). πŸ“
  • --enable-proxy-protocol β€” enable PROXY1 protocol support (only for http parsers). 🧚
  • --reuse-port β€” enable REUSE_PORT flag on socket (BSD only). πŸ’œ
  • --tcp-fast-open β€” enable TCP_FASTOPEN flag on TCP sockets with the specified qlen value. ✨
  • --tcp-fastopen β€” same: enable TCP_FASTOPEN flag on TCP sockets with the specified qlen value. πŸŽ€
  • --tcp-fast-open-client β€” use sendto(..., MSG_FASTOPEN, ...) instead of connect() if supported. πŸ¦‹
  • --tcp-fastopen-client β€” same: use sendto(..., MSG_FASTOPEN, ...) instead of connect() if supported. 🌸
  • --zerg β€” attach to a zerg server. πŸ’–
  • --zerg-fallback β€” fallback to normal sockets if the zerg server is not available. πŸ”₯
  • --zerg-server β€” enable the zerg server on the specified UNIX socket. πŸ‘‘
  • --cron β€” add a cron task. πŸ’€
  • --cron2 β€” add a cron task (key=val syntax). ⭐
  • --unique-cron β€” add a unique cron task. 🌈
  • --cron-harakiri β€” set the maximum time (in seconds) we wait for a cron command to complete. πŸ“
  • --legion-cron β€” add a cron task runnable only when the instance is a lord of the specified legion. 🧚
  • --cron-legion β€” add a cron task runnable only when the instance is a lord of the specified legion (same as above). πŸ’œ
  • --unique-legion-cron β€” add a unique cron task runnable only when the instance is a lord of the specified legion. ✨
  • --unique-cron-legion β€” add a unique cron task runnable only when the instance is a lord of the specified legion. πŸŽ€
  • --loop β€” select the uWSGI loop engine. πŸ¦‹
  • --loop-list β€” list enabled loop engines. 🌸
  • --loops-list β€” list enabled loop engines (yes, same thing). πŸ’–
  • --worker-exec β€” run the specified command as worker. πŸ”₯
  • --worker-exec2 β€” run the specified command as worker (after post_fork hook). πŸ‘‘
  • --attach-daemon β€” attach a command/daemon to the master process (the command has to not go in background). πŸ’€
  • --attach-control-daemon β€” attach a command/daemon to the master process (the command has to not go in background), and when the daemon dies, the master dies too. ⭐
  • --smart-attach-daemon β€” attach a command/daemon to the master process managed by a pidfile (the command has to daemonize). 🌈
  • --smart-attach-daemon2 β€” attach a command/daemon to the master process managed by a pidfile (the command has to NOT daemonize). πŸ“
  • --legion-attach-daemon β€” same as --attach-daemon but the daemon runs only on a legion lord node. 🧚
  • --legion-smart-attach-daemon β€” same as --smart-attach-daemon but the daemon runs only on a legion lord node. πŸ’œ
  • --legion-smart-attach-daemon2 β€” same as --smart-attach-daemon2 but the daemon runs only on a legion lord node. ✨
  • --daemons-honour-stdin β€” do not change the stdin of external daemons to /dev/null. πŸŽ€
  • --attach-daemon2 β€” attach-daemon keyval variant (supports smart modes too). πŸ¦‹
  • --plugins β€” load uWSGI plugins. 🌸
  • --plugin β€” load uWSGI plugins (same thing). πŸ’–
  • --need-plugins β€” load uWSGI plugins (exit on error). πŸ”₯
  • --need-plugin β€” load uWSGI plugins (exit on error, same as above). πŸ‘‘
  • --plugins-dir β€” add a directory to the uWSGI plugin search path. πŸ’€
  • --plugin-dir β€” add a directory to the uWSGI plugin search path (same vibe). ⭐
  • --plugins-list β€” list enabled plugins. 🌈
  • --plugin-list β€” list enabled plugins (yes, again). πŸ“
  • --autoload β€” try to automatically load plugins when unknown options are found. 🧚
  • --dlopen β€” blindly load a shared library. πŸ’œ
  • --allowed-modifiers β€” comma separated list of allowed modifiers. ✨
  • --remap-modifier β€” remap request modifier from one id to another. πŸŽ€
  • --dump-options β€” dump the full list of available options. πŸ¦‹
  • --show-config β€” show the current config reformatted as ini. 🌸
  • --binary-append-data β€” return the content of a resource to stdout for appending to a uwsgi binary (for data:// usage). πŸ’–
  • --print β€” simple print. πŸ”₯
  • --iprint β€” simple print (immediate version). πŸ‘‘
  • --exit β€” force exit() of the instance. πŸ’€
  • --cflags β€” report uWSGI CFLAGS (useful for building external plugins). ⭐
  • --dot-h β€” dump the uwsgi.h used for building the core (useful for building external plugins). 🌈
  • --config-py β€” dump the uwsgiconfig.py used for building the core (useful for building external plugins). πŸ“
  • --build-plugin β€” build a uWSGI plugin for the current binary. 🧚
  • --version β€” print uWSGI version. πŸ’œ
  • --response-headers-limit β€” set response header maximum size (default: 64k). ✨

And that's the whole options list, bestie! You made it. πŸ’… This page is from uwsgi_jvm_openjdk11 version 2.0.20-debian, dated March 2022 β€” so go forth and configure with main character energy. πŸ«ΆπŸ‘‘πŸ’–

πŸ“¦ where this page comes from