Slashdot Mirror


Why I Hate the Apache Web Server

schon writes "Today's the last day of ApacheCon Europe; There was a hilarious presentation entitled 'Why I Hate the Apache Web Server' for anyone who has expressed frustration with the various inconsistencies and nuances of the Internet's favourite config file. And yes, it includes a comparison to Sendmail."

11 of 558 comments (clear)

  1. Re:Whoops by arcanumas · · Score: 4, Informative
    Ah, what you want is the PDF Download firefox extension.

    When you click on a pdf it displays a choice of opening it in a new tab, downloading it , or viewing it as HTML (which i think uses google, but i could be wrong because i never use this option)
    It really saved me.

    --
    Slashdot Sig. version 0.1alpha. Use at your own risk.
  2. Re:Those PDF's again... aaargh by Virak · · Score: 4, Informative

    Well, until they feel like adding a PDF warning, you should get the PDF Download extension for firefox. It's small, simple, and prevents PDF ambushes from raping your system's resources.

  3. Re:Those PDF's again... aaargh by cortana · · Score: 5, Informative

    Put this in your userContent.css:

    a[href$=".pdf"]:after {
    font-size: smaller;
    content: " [pdf]";
    }

    I also find the following useful:

    :link[target="_blank"]:after, :visited[target="_blank"]:after,
    :link[target="_new"]:after, :visited[target="_new"]:after
    {
    font-size: smaller;
    content: " [new]";
    }

    a[href^="javascript:"]:after
    {
    font-size: smaller;
    content: " [shite]";
    }

  4. Re:Those PDF's again... aaargh by LordoftheWoods · · Score: 3, Informative

    Indeed. URLs are a subset of URIs. URIs = URLs + URNs. A URL is an indicator of where to find a resource while a URN is an unique name for a resource regardless of where or how many places it may be found. To add more confusion, sometimes URNs are also URLs.

    Got that?

  5. Re:Those PDF's again... aaargh by Wolf+nipple+chips · · Score: 5, Informative
    For anybody willing to make comments on the content instead of the form, here it is :

    Why I Hate The Apache Web Server
    Lessons learned from IRC - Rich Bowen
    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.

    Why do I hate thee? Let me count the reasons.
    - Fragile
    - Confusing
    - Missing stuff that EVERYONE asks for

    Fragile
    - Breaks easily. Small changes have big results

    Options +Indexes Includes MultiViews
    Options Indexes Includes Multiviews

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

    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

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

    # 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.

    Discussion
    "But the docs say not to do that!" Yes, I know. I wrote that line in the docs. It's still really irritating.

    Another ...

    Require Valid-user

    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.

    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.)

    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!

    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.

    CONFUSING
    NumServers ServerLimit ThreadLimit ThreadsPerChild StartThreads StartServers MaxSpareThreads MinSpareServers MaxSpareServers MinSpareThreads MaxClients MaxThreadsPerChild MaxRequestsPerChild MaxRequestsPerThread ThreadStackSize
    Oh sweet God make it stop

    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.

    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?

    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!"

    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)

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

    Alias /foo/bar

    --
    Nothing is foolproof to a sufficiently talented fool.
  6. Re:Whoops by Mad+Merlin · · Score: 3, Informative
    That, or "Why I love kpdf".

    Really, the version in KDE >=3.4 is incredible.

  7. Re:Why I hate PDFs by EvanED · · Score: 3, Informative

    It's not necessarily dumb. Latex-Beamer can produce, IMO, the nicest "PPT-like" presentations I've seen.

  8. Maybe, maybe not by Sycraft-fu · · Score: 3, Informative

    I've seen IIS sites handle a /.ing fine, I've seen Apache dragged to the dirt. Why? Well /.ing kills sites one of two ways:

    1) Bandwidth. Whatever if being offered is large enough that the line it's on becomes highly over saturated and thus requests are processed very slowly, if at all.

    2) CPU load due to dynamic content. Sites that use databases, or scripts to create their pages or something get overwhelemed because they don't have enough CPU to support all the requests.

    The webserver itself isn't the problem. Either Apache or IIS can easily saturate a 100mb link with static content, even on a fairly old server.

    When I worked for the school paper and we were linked, it was no problem at all. The line was 10mb, and the content was fairly small (say 300-500k total) and all static. Despite being a P2 300 the server didn't even break a sweat, load average was below 1. When the department I now work at was receantly linked for a comet simulator, it killed out webserver, despite the content being about 2k and it being a fiarly fast SPARC machine. The reason was each request required computation, so our load average was about 100.

    Apache being able to survive a /.ing isn't at all impressive, it's expected. Any webserver worth it's shit should be able to had out massive amounts of data with little resource usage. It's other processing like PERL scripts, DB requests, SSL, etc that kill it, or simply overtaxing the available bandwidth.

    Bandwidth is actually fairly common, many servers are run on small lines. I have a couple servers in my closet on my 768k up line. That is plenty for normal usage, people find the sites quite zippy. However Slashdot would easily overwhelm that bandwidth.

  9. Re:Sigh. Just a half-witted rant, as I expected... by Anonymous Coward · · Score: 3, Informative

    This was at an apache conference. He's written documentation for Apache. Chances are he uses it and knows more about it than you ever will. Dumbass.

  10. Re:Whoops by gnarlin · · Score: 3, Informative

    Actually it is: How I learned to stop worrying and love the web. This is a direct link to the pdf rendered into html.

    --
    A bad analogy is like a leaky screwdriver.
  11. The spec indicates prescedence by Sits · · Score: 3, Informative
    From the spec you linked, we read that the HTTP charset should take prescedence over any other charset:

    To sum up, conforming user agents must observe the following priorities when determining a document's character encoding (from highest priority to lowest):

    1. An HTTP "charset" parameter in a "Content-Type" field.
    2. A META declaration with "http-equiv" set to "Content-Type" and a value set for "charset".
    3. The charset attribute set on an element that designates an external resource.

    As it turns out this isn't the whole truth (there can be heuristics) but what you are doing is rather dicey (read as: may give different results in different browsers or in the future). Make your charsets agree or you might cause yourself problems.