IIS 7.0 Learns a Few Tricks from Apache
An anonymous reader writes "According to BetaNews, Microsoft is learning a few tricks from Apache for the next release of IIS, version 7.0. Specifically, the IIS feature set has been broken down into modules to reduce overhead. Modules can be changed on the fly, without restarting the Web server. Also, the IIS metabase has been completely dropped in favor of easily editable XML configuration files. Each Web application can have its own config file that overrides the system-wide configuration."
IIS 6.0 utilized an editable-during-runtime xml configuration file, metabase.xml. The new stuff is more integrated into a .Net Framework style config.
... At TechEd New Zealand. IIS7 looks really smart, with pluggable modules to provide all of its functionality, as the submitted mentioned. Ouf of the box pretty much everything will be disabled, and you enable only the modules you need.
IIS6 (win 2003) has already done away with the metabase and gone to an XML file for all of the configuration settings.
IIS7 goes one further, by allowing you to put configuration files in each virtual directory or website to over-ride the parent setting (if permitted) - this allows a website owner to configure their own website, without affecting the other websites on the box, or having to ask the administrator to make the changes for them.
The MS guy told me they are trying to make management as easy as possible for servers containing thousands of seperate sites. He also said they hope to release IIS7 for Win2003 R2.
Loads of other management things are coming in too, such as the ability to examine currently execting requests, and kill them without restarting the site or server (VERY usefull if a script is looping)
MS's new approach to security seems to be really paying off - IIS6 was re-written from the ground up, and how many security holes have there been? I can't remember any.
Running in prefork MPM is fine for the most part, but I really wish perchild would get off the ground so that PHP scripts won't be all running as the same user. Now if only all of PHP's modules were thread safe...
suPHP will take care of that for you. Well, the user bit, not the thread safety bit.
http://www.suphp.org/Home.html
Why?
You have been able to [re|un]install IIS without a reboot since XP (XP and 2003).
I doubt running multiple versions on the machine will ever happen, which is fine.
Want IIS5 and it's lack of features? Run 2000, which is lacking compared to IIS6/2003.
that's what Mono is for
My posts are definitive. Reality is frequently inaccurate.
Would have been nice had he done one of these first:
/etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
.bak you can accidently write a bad copy over a good one. Even worse is finding things like:
mv
Heh, fat chance with that guy. I usually append a bind type serial number (2005091501) to the end of a copy. If you just use
httpd.orig.bak3 or
httpd.conf.this.one.works2.bak
in the conf directory.
Apache doesn't have hot-swapable modules.
It has modules, but they are loaded when the server starts. If you want to enable or disable modules you need to restart the server.
You can restart the server in a fairly graceful way with very short downtime. But this is not the same as hot-swapable modules.
So, no, I doubt that anyone at Apache has patented hot-swappable modules.
Have a look at http://httpd.apache.org/docs/2.0/stopping.html for more details.
IIS runs without a GUI. You can configure it* without a GUI by editing the XML config file. Have been able to since IIS6. 'Bout time to wake up and get a clue, don't you think?
I won't completely flame you for sounding like a Windows-ignorant Linux zealot, because you're a fellow climber.
* Although why the hell would you want to?
PerUser does this as well: http://www.telana.com/peruser.php
Not that it fully answers your needs, but surely someone who manages 1000s of sites would be aware of its existence?
Dewey, what part of this looks like authorities should be involved?
That is a very complicated solution to a simple problem.
You can very easily run each version of your web app in different virutal sites in the same apache instance. You're going to have be convince me as to why it's necessary to run them under different instances.
Unlike Apache, IIS is far more configurable about it's "Application Pools" and can run them all as different uesrs, or different configurations or different security.
If you need web hosting, you could do worse than here
The IIS metabase is already an XML configuration file. It has been since IIS 6.0 which ships with Windows Server 2003. It sounds like they are just making some changes to it. Located at systemroot\System32\Inetsrv\Metabase.xml They also provide a schema file for it: MBSchema.xml
See this article for technical details.
Thank you for mentioning Application Pools. This was one of the biggest and best improvements in IIS6. And yet so many people don't seem to fully grasp the power of AppPools.
Well, maybe Apache does not have these, but other OSS web servers have. Eg if I understand the feature list correctly Roxen WebServer does have at least hot-swappable modules.
I worked for a small ISP, and we used a heavily-commented named.conf and associated zone files to keep track of configuration information, explanations for non-obvious things, etc. Since we were a small shop and worked well together, this was fine. Until we merged with another ISP. Whose admins "helpfully" slaved their BIND to ours, made it the master, and then slaved ours to theirs. Without changing the zone filenames in named.conf. I think that, had I been in the same room with them before we managed to retrieve our off-site backups, I might've had to have killed them.
One hugely useful system is to use version control on your configuration directories. Let the new guy delete at will; you can always roll back his commits and explain why you're going to beat him if he does it again.
Dewey, what part of this looks like authorities should be involved?
Actually, yes you can do things like that with IIS using HttpModules. It's thoroughly documented as well (on MSDN, 4GuysFromRolla, The Code Project, etc etc) with all the source code you'd ever want or need. It's quite simple really, and there is very little code needed.
And if you don't want to think/read/peek at source/compile anything or the like, then there's always ISAPI_rewrite (the lite version is free and is enough for most tasks, and the full is reasonably priced). There is also OpURL and others.
If you were following with the IIS stuff better, you'd see it actually ISN'T really missing anything important, and IIS 7 is just going to rock.
Of course this'll get modded -1 Shill...
And thank the gods for that! I believe the feature they are referring to is the concept of having configuration files at all (which you can then easily scriptify, version, etc). As far as I understand IIS was strictly pointy-clicky for config.
That MS chose to do their in XML isn't a feature, just an annoyance for whoever has to work with those files.
(Same thing with modules: having modules is the new feature, that they are run-time loaded is a pretty useless addition)
sic transit gloria mundi
I went to the "Breakout Session" for IIS7 yesterday and the guy was using IISCMD.exe to configure it. I am not sure how robust it is, however.
IIS Free ? Last time I looked you have to pay big money if you want to have more than 50 (IIRC) simultaneous concurrent user-connections from your .asp(x) app to a MSSQL server.
Where do you want to go, toady ?