Naive port of mod_pagespeed for nginx

Hi all,

This is just to announce my naive yet functional port of Google’s
mod_pagespeed to nginx.
I’m not sure I’ll have much time to improve on this, but this might
interest
you.

Right now it compiles with the latest stable version of mod_pagespeed
and
does a very simple parsing using the AttrValuesSaverFilter that I found
in
the unittests. (it just saves all the html tag attributes found while
parsing in a string).

The code and instructions to compile it can be found here :

Happy hacking,
Matthieu.

Matthieu this is great! Nice work! Please keep us posted on this.

-Josh

On Mon, Jun 6, 2011 at 2:23 PM, Matthieu T.

Out of curiosity, have you defined a mechanism to configure nginx to use
any
of the predefined filters? It looks like you were aware of
RewriteOptions,
which is the API-based equivalent to pagespeed.conf, but you are not
using
it yet in
https://github.com/mtourne/ngx_instaweb/blob/master/ngx_http_instaweb_module.cpp
.

The next step in your nginx integration looks to be resource-handling
and
fetching. Specifically, you need to define a way to fetch external HTTP
resources referenced on a page, and a way to handle fetches for
rewritten
resources. We can help you if you have any questions feel free to reach
out.

Please also check this out:

http://code.google.com/p/modpagespeed/source/browse/trunk/src/net/instaweb/automatic/Makefile

We’ve been working along the same lines you have: starting with a
mod_pagespeed build, generate a linkable library that has the kernel of
functionality needed to integrate mod_pagespeed’s parser & algorithms
into a
new platform.

-Josh

On Mon, Jun 6, 2011 at 6:37 PM, Matthieu T.
[email protected]wrote:

I think I started looking at creating a RewriteOptions object, but got side
tracked and this project has been idle for a little while.
I just updated it this weekend for the latest mod_pagespeed, and put it out
there.

Cool. As you get time to push this forward, please don’t hesitate to
ask
questions.

I like how the instaweb API is designed, and how you provide "backend

functionalities" through adapter objects (if I remember correctly).
With nginx extensive subrequests mechanism, fetching external resources
shouldn’t be too difficult.

Thanks! It was a goal up front to make ports like this possible.

This Makefile could definitely help. I was also wondering if there was a

python lib that could make sense of Google’s internal build files ?

I’m not 100% sure – we are not experts in the .gyp file system
ourselves
although there is doc here:
http://code.google.com/p/gyp/wiki/InputFormatReference. What problem
are
you trying to solve?

I think I started looking at creating a RewriteOptions object, but got
side
tracked and this project has been idle for a little while.
I just updated it this weekend for the latest mod_pagespeed, and put it
out
there.

I like how the instaweb API is designed, and how you provide “backend
functionalities” through adapter objects (if I remember correctly).
With nginx extensive subrequests mechanism, fetching external resources
shouldn’t be too difficult.

This Makefile could definitely help. I was also wondering if there was a
python lib that could make sense of Google’s internal build files ?

Thank you!

Matthieu.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs