uWSGI installed from pip inside virtual env does not recognize http-auto-gzip

Inside a Debian Buster Docker container, I first install python3, python3-pip, and python-venv, which lets me create a python 3.7.3 venv, using

python3 -m venv ./venv_name

which I activate in the typical way. Inside, I use

pip install uwsgi

to install uWSGI (version 2.0.19.1 in this case). I have a uwsgi.ini file which contains:

[uwsgi]
strict = true
master = true
http-auto-chunked = true
http-keepalive = 1
http-auto-gzip = true
http-timeout = 360

etc. When I attempt to start uwsgi from the command line, though:

uwsgi --ini uwsgi.ini

I get the error:

[strict-mode] unknown config directive: http-auto-gzip

What is causing this error? Some searching suggests it is related to a missing plugin, but also that the http plugin is embedded in the pip install. I’ve tried explicitly naming the plugin by adding

plugins = http

to the ini file, but that results in the error:

!!! UNABLE to load uWSGI plugin: ./http_plugin.so: cannot open shared object file: No such file or directory !!!

Answer

Based on the source code here http-auto-gzip is only available when uWSGI is compiled with the UWSGI_ZLIB flag.

You will need to have the zlib1g-dev Ubuntu package installed when you install (compile) uWSGI for that to happen.