How are you measuring the rate at which data is being returned? Is there a 
specific client command you are using? If I know that I can test. Include any 
example of running it and what output you see and expect to see.

Thanks.

Graham

> On 7 Feb 2018, at 8:56 am, Charles Cazabon <[email protected]> wrote:
> 
> Hi,
> 
> I've run into an issue with a long-in-use mod_wsgi setup with WSGI daemon 
> processes.  Specifically, the output of the application running under 
> mod_wsgi does not appear to be passed through the configured Apache output 
> filters, at least not with a rate limiting filter from the built-in 
> mod_ratelimit.
> 
> Setup:
>   -Ubuntu Trusty server, x86/64
>   -Python 2.7.6 (plus backported fixes, standard Ubuntu security updates)
>   -mod_wsgi v. 4.4.21
> 
> With a minimal Apache vhost config:
> 
> <VirtualHost *:80>
>     ServerAdmin [email protected]
>     ServerName bwtest.example.com
>     DocumentRoot /var/www/bwtest/public_html
> 
>     ErrorLog /var/log/apache2/bwtest.example.com-error.log
>     CustomLog /var/log/apache2/bwtest.example.com-access.log combined
> 
>     # Limit bandwidth to 4Mbps/512KBps for transferring data
>     SetOutputFilter RATE_LIMIT
>     SetEnv rate-limit 512
> </VirtualHost>
> 
> Downloads are limited to ~512KB/s as expected.  If I add a WSGIDaemonProcess 
> to the config:
> <VirtualHost *:80>
>     ServerAdmin [email protected]
>     ServerName bwtest.example.com
>     DocumentRoot /var/www/bwtest/public_html
> 
>     ErrorLog /var/log/apache2/bwtest.example.com-error.log
>     CustomLog /var/log/apache2/bwtest.example.com-access.log combined
> 
>     # Limit bandwidth to 4Mbps/512KBps for transferring data
>     SetOutputFilter RATE_LIMIT
>     SetEnv rate-limit 512
> 
>     WSGIDaemonProcess bwtest.example.com \
>         python-path=/usr/lib/python2.7 \
>         processes=3 threads=8 \
>         maximum-requests=1000 \
>         shutdown-timeout=60 \
>         display-name=bwtest.example.com
>     WSGIProcessGroup bwtest.example.com
>     WSGIScriptAlias / /var/www/bwtest/minimal.wsgi 
> </VirtualHost>
> 
> And an absolutely minimal WSGI application (just hardcoded into the .wsgi 
> file) that transfers the same file: 
> import os.path
> 
> BASEDIR = os.path.dirname(__file__)
> DATAFILE = os.path.join(BASEDIR, 'public_html', '64M')
> 
> data = open(DATAFILE, 'rb').read()
> 
> class TestApp(object):
>     def __call__(self, environ, start_response):
>         status = '200 OK'
>         response_headers = [
>             ('Content-type', 'application/octet-stream; charset=binary'),
>             ('Content-length', str(len(data))),
>             ('Content-Disposition', 'attachment; filename="64M.bin"'),
>         ]
>         start_response(status, response_headers)
>         return [data]
> 
> application = TestApp()
> 
> ... then the file is transferred at wire speed, seeming to bypass the 
> mod_ratelimit output filter.
> 
> I realize 4.4.21 is not the current version, but the release notes for all 
> more recent versions contain nothing about this.  I found nothing related in 
> the mailing list archives.  Upgrading to the most recent mod_wsgi just to 
> confirm that doesn't affect it will take some time because it has to go 
> through acceptance testing.
> 
> Are Apache output filters supposed to work with mod_wsgi and a daemon process?
> 
> Thanks,
> 
> Charles
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "modwsgi" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] 
> <mailto:[email protected]>.
> To post to this group, send email to [email protected] 
> <mailto:[email protected]>.
> Visit this group at https://groups.google.com/group/modwsgi 
> <https://groups.google.com/group/modwsgi>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to