Apache Server Nears 2.0
An Anonymous Coward writes: "The Apache httpd project has released a new beta of their apache 2.0 server (v32)". For those who have not been following the 2.0 development, this is the third beta that has been produced. The new version of Apache sports the new APR API and a new method for filtered I/O, and has been rewritten to make use of a hybrid thread/process model. With Covalent already selling a commercial version of 2.0, hopefully we will see a full release of the open source version in the near future.
Err.... Read the article?
Wouldn't you agree that it's a good thing to improve Apache's portability?
There's also a lot more to a web server than just serving files straight off the hard drive.
The main benefit of Apache in the first place is the stability benefited from the fork() nature of it.
:)
:)
:)
Apache 2.0 brings some nice and intresting new features that only a multithreaded server can bring, but these are all features already available in tons of other web servers..
Unfortuantly, the programmers working on Apache 2.0 don't know how to write thread safe code. Don't believe me? Go get the source yourself, cuddle up to a posix threading book and pull out a 100% correct threading library. (Like the FreeBSD one.)
Example... DONT USE SLEEP(3) in a multithreaded application!.. but whatever
What I am basically saying is.. I would't get apache 2.0 for production _yet_. Someday Apache 2.0 will be the model for how a stable multithreaded multi-protocol server can be written.
By the way, I normally don't take time out to actually post. But since my moderation and meta moderation privs were removed since i moderated a post I found intresting.. to be intresting. (The great slashdot troll investigation). About 500 people lost their moderation ability at that time. What a nice brave new world.
The advance is. I can now say what I truely feel and not care about karma.. because this place is a joke.
Apache is doing a thing or two besides just calling "Passenger index.html, please contact gate 80". There are other, faster httpds around that focus on this simple task, for example Boa. (the joke works much better in Finnish)
Escher was the first MC and Giger invented the HR department.
Personally, I don't mind waiting on the Apache project to take their time and do it right. I believe 2.0 isn't bloatware, but a far more modular and extensible version of the worlds fav. web server. Personally I've been waiting for a WHILE to start using it. I'm not sure if PHP4 will compile against it yet. Maybe out of CVS it will.
With the new threading, it should manage to push out pages a lot faster under load, and make better use of the processors. Might have to go download today. Here's a project for those of you bleeding edgers out there. I've yet to manage this one myself:
Apache 2.0 + mod_perl + php4 (with support for MySQL 4.x) + mod_ssl.
I don't think non-CVS PHP4 will handle MySQL 4.x, but perhaps there are others that know how.
Back to topic, way to go guys!!
-What have you contributed lately?
Many sites use Apache as an application server or to serve dynamic-content; e.g., by using mod_perl (to deliver blazingly-fast dynamic content generated by Perl scripts), or as a flexible and solid front-end to Java servlet engines like JServ and Tomcat.
And far from being bloatware, Apache has (at least during 1.*) gotten more modularized over time, making it easier to fine-tune logging, access control, URL rewriting, etc, etc. I don't know squat about 2.x, but I expect good things.
Just the $0.02 of a Perl/Java hacker who uses it extensively...
I'm a bloodsucking fiend! Look at my outfit!
Apache has scalability problems. The APR will allow you to tune Apache to be most scalable for your platform. For Windows, it's threads only. For Linux, it will probably be the thread/process combo. This is a good thing. Apache REALLY needs this to move to the next level.
Engineering and the Ultimate
I've been using Apache 2 on Linux and FreeBSD for about 2 months now (got into it while playing around with Subversion, another project that seems to be making excellent progress), and IMHO it is really going to rock the server world. Some major plusses:
People have been complaining that Apache 2 is slow to come out, but from what I've seen lurking on the mailing list, it's because they want to ensure the quality of this release. They've also been talking about how they want a lot of beta testers, because (<rumor mode on>)they want to release soon, maybe even from 2.0.32. So get out there and beta test it!
---
Have you crashed Windows XP with a simple printf recently? Try it!
This is usually the case when you are serving static pages for a page that is viewed one time a day.
However, it gets complicated when you serve pages that are dynamically generated for various users. You want to be able to pass content of a file through various modules. You can tell that you want the page to go through mod_perl and then through SSL modules. You can also stack any modules in between.
The new version makes it easy.
Of course there is a lot of other things besides the "reading and shooting" files (IPv6, web caching, etc).
I've been following performance results for 2.0, and wanted to let folks know that it doesn't seem clear to me that there is this huge performance gain waiting to happen.
l has some 2.x v. 1.x results.
http://webperf.org/a2/v29/Apache2_26-Nov-2001.htm
Love to hear the lowdown on performance advantages of the new Apache from someone in the know or someone who has done some actual testing.
Also, PHP/Apache perl/Apache integration are probably very high on many folks lists, what is the status of those two vis a vis apache?
Haha, not only did you not bothering reading the article (links), but you didn't even finish reading the post!!
:)
"With Covalent already selling a commercial version of 2.0, hopefully we will see a full release of the open source version in the near future." -krow
well done
First off, I have to rant about how much I love their precompiled MSI builds. Convincing my boss that installing a webserver to replace IIS would be easy was about 3 million times earlier with that... run it, click thru the wizard, once-over the config file and you're up. Now you, too, can escape the IIS headaches in less than five minutes!
With that said, has anyone tried the MSI for this latest beta? It didn't create the service for me automatically, and I wasn't sure if it was just my crackpipe or if it was an actual problem. Bug report's been filed already, just wanted to see if anyone else had any input...
---
"how can the same street intersect with itself? i must be at the nexus of the universe!" - cosmo kramer
The answer to that question is, dynamic transactions often access existing databases, which often have screwed up data models and require insert/updates in multiple tables. Some will run and scream "horror, horror, horror," but now that the .bomb blew up, more and more web developers are finding they have to work with bad, inefficient, poorly documented data models. Having multi-threading in Apache will improve it's scalability.
-flame- -flame- -flame- OK, I was just kidding. I love PostgreSQL, but even I realize that when you don't need stability, speed, good SQL compliance or ... what was I saying again?
-flame- -flame- -flame-
Alright, back on topic, I'm pretty sure that you've been able to compile PHP4 for Apache 2.0 for quite a while now (at least the option has been there - maybe it's been broken?).
It's PHP and not Apache that is the bottleneck here. For instance, I am writing a PHP extension that not only makes reading and writing XML files a doddle (eg to change (hypothetical) Apache xml config: xml_load("httpd.conf); xml_setelement("server.listen.ip", "127.0.0.1"); xml_output("httpd.conf");) but it will cache the XML files too. This means I can load config files at the start of my script with nearly no overhead. It's also going to drop the database load for an online book retailer client of mine to near zero, but that's another story... If anyone is interested in this please use ptemple[at]progressivepublishing.com instead of my Slashdot-reg Hotmail address.
Phillip.
Property for sale in Nice, France
The API's are not yet fixed, so they tend to break. You can probably compile CVS of PHP to the current beta Apache 2, but the next time they change something PHP will most likely track the CVS change, leaving the beta out in the cold again.
I managed to get mod_php + Apache 2b28 coexisting, but it liked to segfault a lot (even when idle) and always ended up eating 100% CPU. I even managed to add Zend 2 (next-gen PHP engine) to the mix, but, well, I haven't seen Apache fall over so much since I got PHP 4.0.0 to generate 50,000 internal errors on a single script.
I've been looking forward to the perchild MPM. It can run different server processes under different UID/GIDs. This is important because mod_{perl,php,python,snake} run in-process with the Apache server. It's the only way to run them securely for different people other than a completely seperate webserver for each person (with its own IP address, configuration file, memory footprint, etc.)
But perchild doesn't really work:
So, Apache 2.0 may be promising in the future...but when a feature I've been looking forward to for a long time is broken, I'm kind of disappointed.
I still wonder why Apache 2.0 was designed to use a strange hybrid model instead of making a non-forking server, just like thttpd, webfs or zeus, whoose performance will probably still kick Apache.
And Apache still doesn't have any integrated web administration front-end like Zeus.
{{.sig}}
why are everyone so exited about the thread-per-request model? instead, many high-performance servers use non-blocking (or asynchronous) i/o models to scale. for instance, look at the seda project (http://www.cs.berkeley.edu/~mdw/proj/seda/) where a java implementation of a web-server using non-blocking i/o outperforms both the apache and flash web-servers for specweb99.
You can see an example of a multithreaded web server using a similar portability library on .
I remember showing this web server and its multithreaded / portability model to the IBM Apache team in December 1999 during the Bazaar at New York. Maybe they got some inspiration from it.
My blog
Before you graduate, be sure to catch up on the industry literature for valuble insights into how the real world works.
-- MarkusQ
P.S. Pay special attention to what happens to Asok, and lean how to duck.
DRM? No thanks, I'll just get it somewhere else...
being able to plug in your domain SAM, with acls on the site. Also domain authentication with "web folders" (DAV) is another. Note: I will be happy to be corrected with a HOWTO that tells you how to point DAV at your PDC or SAMBA box here ... (without running a separate accounts database)
APR deals more with processes, threads, interprocess communication and networking while glib is more of a useful toolbox with trees, stacks and types, etc.
That being said, there's definately an overlap.
Ok, so maybe this is not the place for this, but I can't seem to get any answers out of the developers about this. ./configure still doesn't work.
./configure --enable-layout=opt. No dice - it still throws everything in /usr/local/apache2.
I downloaded 2.0.28 in December and tried to
I posted to the apache-users mailing list in December, and no one responded. I tried again yesterday, with 2.0.32, and it still doesn't work.
Looking through the bug tracking list, I can see that this bug has been filed since November 2001.
How can Apache 2 be nearing release if you still can't get it to install where you want it to?
Yes, clearly using synchronous calls on windows was the result of a bunch of unix coders not knowing how to program for windows at all. I was hoping that the promise for 2.0 meant that they actually hired some real windows coders. I guess not. A well written asynchronous and/or properly threaded application on windows can easily match performance of the best written UNIX apps. But no fork and block unix coder is going to ever be able to do the windows "port" justice (As we've seen). Now I guess we'll have to "hope to discover" if they got a clue or not. :(
Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!