the apache software foundationpeople.apache.org/~rbowen/presentations/apacheconeu2005/...created...

19
Why I Hate The Apache Web Server Lessons learned from IRC Rich Bowen 1 Note: Opinions expressed are those of our users, as expressed on IRC. The goal of this talk is to make people aware of things which those "outside" see as problems, but which we tend to be so used to that we don't see at all. If I get carried away, feel free to throw fruit.

Upload: others

Post on 06-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Why I Hate The Apache Web Server

Lessons learned from IRC

Rich Bowen

1

Note: Opinions expressed are those of our users, as expressed on IRC. The goal of this talk is to make people aware of things which those "outside" see as problems, but which we tend to be so used to that we don't see at all. If I get carried away, feel free to throw fruit.

Page 2: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Why do I hate thee? Let me count the reasons.

Fragile

Confusing

Missing stuff that EVERYONE asks for

2

Page 3: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

FragileBreaks easily. Small changes have big results

3

Options +Indexes Includes MultiViews Options Indexes Includes Multiviews

The first of these forbids Indexes.The second one permits them.

Huh?

Page 4: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Disclaimer

“But that’s not supported syntax!”

Then it should throw an error and break, not do something utterly unexpected

Unfortunately, several major Linux distros ship with this broken-but-almost-looks-right configuration, or variants thereof

4

Page 5: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Example 2Vhosts ... wow, don’t get me started

5

# My IP address is 192.168.1.200 NameVirtualHost *:80 <VirtualHost 192.168.1.200:80> ... </VirtualHost>

That vhost is silently ignored.

Yeah. That’s intuitive.

Page 6: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Discussion

“But the docs say not to do that!”

Yes, I know. I wrote that line in the docs. It’s still really irritating.

6

Page 7: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Another ...

Unlike every other Apache config setting, “Require” is case sensitive, so that’s not valid

valid_user would be nice too

Oh, and “Require User” and “Require Group” don’t work either.

7

Require Valid-user

Page 8: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Missing (asked daily on IRC)

Can I set a variable and use it later?

Can I have an if/else syntax?

Can I please reload my configuration file without restarting my server?

How do I make ServerTokens return “Bob’s Handy Dandy HTTP Server”? (Yes, this is silly, but it would sure shut a lot of people up finally.)

8

Page 9: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

What else?mod_imap

How many of you have actually used that module?

How many of you who are not committers know what it does?

Why is it on by default?

Come on folks. Netscape added client-side image maps in 1995!

9

Page 10: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

And while we’re on the topic

mod_cern_meta?

Who even knows what this module does?

For the record, yes, I do. But I doubt any of you have ever used it.

10

Page 11: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

CONFUSING

Oh sweet God make it stop

11

NumServers ServerLimit ThreadLimit ThreadsPerChild StartThreads StartServers MaxSpareThreads MinSpareServers MaxSpareServers MinSpareThreads MaxClients MaxThreadsPerChild MaxRequestsPerChild MaxRequestsPerThread ThreadStackSize

Page 12: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

What’s that directive called?

RLimitMem, RLimitCPU, RLimitNProc

I have to look these up every time

Of course, since they don’t seem to do what the docs say, maybe that’s not a bad thing.

12

Page 13: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Am I running out of time yet?

Why do I have to set up two separate vhosts for http://example.com/ and https://example.com/ when they’re the same website?

Why are dynamic vhosts so darned hard?

Why doesn’t the default configuration file match the “security tips” document?

13

Page 14: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

mod_rewrite

I probably don’t need to say anything more than just “mod_rewrite”. But I will.

“Voodoo” and “... flexibility of sendmail”

The docs practically scream “GO AWAY!”

14

Page 15: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

RewriteMap

Nice, but have you ever found an actual useful example?

Oh, and the example script for generating db map files doesn’t actually work. (Note: Paul fixed this 2 weeks ago. See httxt2dbd)

15

Page 16: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

How about this?If I want these two aliases to work, I have to:

16

Alias /foo/bar /path/barAlias /foo /path/other

But if I want two Locations to work, I have to do it the other way around:

<Location /foo> </Location>

<Location /foo/bar> </Location>

Page 17: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

But wait! There’s more!

Why does the env option in CustomLog use =! instead of != like everyone else in the world?

Why isn’t there a simple “log out” method for Basic authentication? We’ve only been asking for it since 1993.

What’s up with the 2 G file limit?

17

Page 18: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Who’s Al?

Apache should just magically know what I mean and do the right thing.

18

Allow from Al

Page 19: The Apache Software Foundationpeople.apache.org/~rbowen/presentations/apacheconEU2005/...Created Date 7/21/2005 8:26:23 PM

Oh, yeah, one more thing

Yes, I want a pony

19