Warning
This feature may be currently broken or deprecated.
You can modify the behavior of some aspects of the uWSGI stack remotely, without taking the server offline using the Management Flag system.
Note
A more comprehensive re-setup system may be in the works.
All the flags take an unsigned 32-bit value (so the block size is always 4) that contains the value to set for the flag. If you do not specify this value, only sending the uWSGI header, the server will count it as a read request.
Flag | Action | Description |
---|---|---|
0 | logging | enable/disable logging |
1 | max_requests | set maximum number of requests per worker |
2 | socket_timeout | modify the internal socket timeout |
3 | memory_debug | enable/disable memory debug/report |
4 | master_interval | set the master process check interval |
5 | harakiri | set/unset the harakiri timeout |
6 | cgi_mode | enable/disable cgi mode |
7 | threads | enable/disable threads (currently unimplemented) |
8 | reaper | enable/disable process reaper |
9 | log-zero | enable/disable logging of request with zero response size |
10 | log-slow | set/unset logging of slow requests |
11 | log-4xx | enable/disable logging of request with 4xx response status |
12 | log-5xx | enable/disable logging of request with 5xx response status |
13 | log-big | set/unset logging of request with big response size |
14 | log-sendfile | set/unset logging of sendfile requests |
15 | backlog-status | report the current size of the backlog queue (linux on tcp only) |
16 | backlog-errors | report the number of errors in the backlog queue (linux on tcp only) |
A simple (and ugly) script, myadmin
, is included to remotely change management flags:
# disable logging on the uWSGI server listening on 192.168.173.17 port 3031
./uwsgi --no-server -w myadmin --pyargv "192.168.173.17:3031 0 0"
# re-enable logging
./uwsgi --no-server -w myadmin --pyargv "192.168.173.17:3031 0 1"
# read a value:
./uwsgi --no-server -w myadmin --pyargv "192.168.173.17:3031 15"