6a8a1c5bf7dc1f65ca474b30261e82e5968018ef
For FetchInPlaceResource, NgxBaseFetch would send two bytes down its pipe, one upon HeaderComplete() and one upon HandleDone(). We need only one to resume processing on the nginx side. There is a race between ps_connection_read_handler() and processing of the byte send by NgxBaseFetch::HandleDone(). ps_connection_read_handler() clears the pipe when the request is finalized, and also drains it on each event - so two writes could be processed as one when lucky, masking the problem). One concrete problem this solved for me was that SPDY + IPRO + proxy_pass would segfault, hang, and/or pass on 5xx/404 responses from IPRO lookup fetches to the browser, next to alerts about r->count being zero in nginx's error.log Might fix https://github.com/pagespeed/ngx_pagespeed/issues/788 Fixes https://github.com/pagespeed/ngx_pagespeed/issues/792
ngx_pagespeed speeds up your site and reduces page load time by automatically applying web performance best practices to pages and associated assets (CSS, JavaScript, images) without requiring you to modify your existing content or workflow. Features include:
- Image optimization: stripping meta-data, dynamic resizing, recompression
- CSS & JavaScript minification, concatenation, inlining, and outlining
- Small resource inlining
- Deferring image and JavaScript loading
- HTML rewriting
- Cache lifetime extension
- and more
To see ngx_pagespeed in action, with example pages for each of the optimizations, see our demonstration site.
How to build
Follow the steps on build ngx_pagespeed from source.
How to use
Follow the steps on PageSpeed configuration.
For feedback, questions, and to follow the progress of the project:
Description
Languages
C++
69.6%
Shell
22.6%
Dockerfile
7.5%
Makefile
0.3%
