On Sun, May 30, 2010 at 9:22 AM, Eric Covener <cove...@gmail.com> wrote:

> On Sun, May 30, 2010 at 1:40 AM, Sergey Chernyshev
> <sergey.chernys...@gmail.com> wrote:
> > Wouldn't you agree that deflate has all reasons to be on a default
> > configuration?
>
> Again, I don't agree. I think it should be configured.
>

There are two parts to the problem

   - enabling gzip module by default in "configure" so when people compile
   Apache, they have it available
   - enabling the module in Apache config and configuring gzip for specific
   content

I think having gzip available is a must, otherwise people will have to go
through compiling it in which is almost impossible for most of the people.

> I checked and it seems that http://httpd.apache.org/ is using gzip
> > compression - why you think other people (with less control over their
> > servers) shouldn't get it by default?!
>
> Our infrastructure has configured it, just like everyone else can.
>

First of all they had to compile it in and in case of Apache Foundation, I
have no doubts they new what they were doing and has no hesitation in that
regard.

In case of a regular internet provider or enterprise IT or Linux
distribution packager, I think this is very different and they have hard
time understanding this and I believe it's important for a team maintaining
most popular web server in the world to make such decisions for them as you
did with other modules that are compiled in by default.

If you're forbidden from enabling mod_deflate, it's probably for a good
> reason (CPU, support)
>

Let me address these two separately - first, CPU.

I think CPU whatever it is more important then extra time spent for apache
child uploading the data over the network should be really tested. I'll be
happy to ask people in the industry to provide their data whatever CPU limit
was more important then slowed download times.

I know that many people who can afford it, use SSL and GZIP-enabling (and
even caching) reverse proxies in front of their Apache farms and some of
them even use lightweight servers like nginx or lighttpd. But we're not
talking about teams that can configure sophisticated server setups, but
about regular infrastructure teams.


Now, the second part - Support:

I think browser support is very hight for gzip and in any case, we're not
enabling gzipping blindly - mod_deflate honors Accept-encoding headers and
sends data only in those cases. I'm well aware of bugs in some older
browsers and it should be taken into account when default rules are created
for ignoring some known bad behavior.

The biggest point here is that leaving people to figure those details out is
dangerous and there is no better place to provide support to people is in
default configuration - documentation already lists some edge cases and I
think people would benefit from such configuration:
http://httpd.apache.org/docs/2.2/mod/mod_deflate.html#recommended

I have a feeling that default configuration can be quite simple - all is
needed is to identify most common content types that are compressible and
white-list them for compression (instead of not very reliable "everything
but images" rule). Second step is to identify those old browsers that have
broken support for gzip (while advertising it through Accept-encoding) and
disable them.

> Same is true for Expires as well:
> > - Yahoo: http://developer.yahoo.com/performance/rules.html#expires
>
> Smartly considering your content expiration is wise, having the
> default conf guess is unwise.
>

Agree completely - it was wrong for me to start the conversation with
directives that I have in "drop-in htaccess" because those require other
things to be done on application layer as I mentioned.

I think, again, we should separate two issues - configuration and
availability of the module.

People who don't have access to recompiling Apache or enabling the modules
don't have ability to configure expiration right now.
And all I'm asking is to give them ability to configure their sites.

Exact configuration is probably a question of their apps, although some best
practices are available there as well.

> Here's my article explaining why expiration is solving "caching problem"
> > people are having and helps load static content once without
> re-requesting
> > it from the server waisting connections for pointless 304s:
> >> Setting infinite Expires headers is a great solution to the problem
>
> I know what the headers do, I disagree that httpd should send them
> with arbitrary values by default.
>


> > There are numerous books written about performance and all of them talk
> > about these two aspects in one way or another.
>
> That should help people make smart decisions, but these are not
> exactly obscure topics.


Not sure I got your point about the obscurity of the topics - my point was
that it's not just my whim to have gzip and expiration, but an industry
practice instead and it's strange that multitude of books are being written
to help people understand, but software doesn't do the job.

I don't think there is any reason why Apache shouldn't be associated with
fast web. Let's help people write about "Fast by default with Apache"
instead of "Install nginx or lighttpd" or "the only way is to use CDN
vendors like Akamai, the'll take care of it".

> BTW, I always build Apaches from the source and before writing to the
> list,

 > I downloaded the latest versions and checked - none of the three modules
> I
> > mentioned are enabled by default in the default build configuration
> file. If
> > I'm wrong, just let me know and I'll go and celebrate ;)
>
> No clue here about starting with a "default build configuration file"
> -- maybe you're starting with "httpd.spec". When you ask for deflate
> or expires and build from source, they end up loaded in the generated
> config.
>

I'm not worried about my own ability to configure web servers at this point
and if that was the case, I would just go to some forum and ask the
questions.

What I'm trying to do is to help more people get the benefits of those
modules - I think they are critical to web site performance and it's in our
hands to help.

 --
> Eric Covener
> cove...@gmail.com
>

Reply via email to