Reverse Proxy Server 2: IIS back-end server: Difference between revisions
No edit summary |
m (Reverted edits by Upazixorys (Talk); changed back to last version by BobS) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
'''Uniform Server - IIS''' | '''Uniform Server - IIS''' | ||
Apache is an awesome web server | Apache is an awesome web server. It will even run ASP applications. Just install [http://www.apache-asp.org/ Apache::ASP] and you are ready to go. Alternatively, you could use that redundant IIS server sitting on your machine and run the appropriate ASP apps from it. | ||
'''''IIS Server''''' | '''''IIS Server''''' | ||
Hey! No way am I suggesting making it your main server. It needs to be put in its place and that’s as a back-end server. On the previous page you saw how easy it is to run Uniform Server as a proxy. Make the modifications to your main server and this gives you Apache and MySQL as a powerful combination, now proxy to IIS. OK, IIS sucks for anything but using ASP.Net, however at least you will have a set-up to explore. | |||
'''''Pain'':''' | '''''Pain'':''' | ||
IIS is a pain when you try to tweak it | IIS is a pain when you try to tweak it; have a go at setting it as a proxy server and you will get some idea what I mean. Apache does it straight out of the box. In theory you should be able to run all your servers on port 80 and bind to different IP addresses. However IIS is a royal pain and grabs everything associated with the port it’s running on and that includes every IP address on the machine. | ||
That said it is relatively easy to change the port it runs on however it is version specific. Below I have listed the common versions | That said it is relatively easy to change the port it runs on, however it is version specific. Below I have listed the common versions. Full details for other versions can be found at [http://support.microsoft.com/kb/149605 Microsoft support]. | ||
== Change IIS port == | == Change IIS port == | ||
Change the IIS port for example 8080 using Internet Service Manager, each site must bind to port 8080. | Change the IIS port for example 8080 using Internet Service Manager, each site must bind to port 8080. | ||
Line 46: | Line 44: | ||
|} | |} | ||
Load your ASP apps and check they run. | Load your ASP apps and check that they run. | ||
== Vhost Set-up == | == Vhost Set-up == | ||
The set-up is similar to that shown on the previous page. Edit configuration file C:\server_a\UniServer\usr\local\apache2\conf\httpd.conf\'''httpd.conf''' | The set-up is similar to that shown on the previous page. Edit configuration file C:\server_a\UniServer\usr\local\apache2\conf\httpd.conf\'''httpd.conf''' | ||
Line 82: | Line 79: | ||
|} | |} | ||
Depending on your application you may need to | Depending on your application you may need to preserve host headers. Try something like this: | ||
{|cellpadding="6" | {|cellpadding="6" | ||
|- | |- | ||
Line 113: | Line 110: | ||
Note: port 8080 If you set a different port for IIS use that | Note: port 8080 If you set a different port for IIS use that | ||
|} | |} | ||
== Summary == | == Summary == |
Latest revision as of 17:36, 24 November 2010
Reverse Proxy Server: Introduction | Basics | mod proxy html | mod proxy html 2 | SVN 1 | SVN 2 | SVN 3 | SVN 4 | Wiki | Deployment | IIS back-end server
|
|
Uniform Server 5.0-Nano Reverse Proxy. |
Uniform Server - IIS
Apache is an awesome web server. It will even run ASP applications. Just install Apache::ASP and you are ready to go. Alternatively, you could use that redundant IIS server sitting on your machine and run the appropriate ASP apps from it.
IIS Server
Hey! No way am I suggesting making it your main server. It needs to be put in its place and that’s as a back-end server. On the previous page you saw how easy it is to run Uniform Server as a proxy. Make the modifications to your main server and this gives you Apache and MySQL as a powerful combination, now proxy to IIS. OK, IIS sucks for anything but using ASP.Net, however at least you will have a set-up to explore.
Pain:
IIS is a pain when you try to tweak it; have a go at setting it as a proxy server and you will get some idea what I mean. Apache does it straight out of the box. In theory you should be able to run all your servers on port 80 and bind to different IP addresses. However IIS is a royal pain and grabs everything associated with the port it’s running on and that includes every IP address on the machine.
That said it is relatively easy to change the port it runs on, however it is version specific. Below I have listed the common versions. Full details for other versions can be found at Microsoft support.
Change IIS port
Change the IIS port for example 8080 using Internet Service Manager, each site must bind to port 8080.
Microsoft Internet Information Server version 3.0 |
---|
|
Microsoft Internet Information Services versions 4.0 to 6.0 |
---|
|
Load your ASP apps and check that they run.
Vhost Set-up
The set-up is similar to that shown on the previous page. Edit configuration file C:\server_a\UniServer\usr\local\apache2\conf\httpd.conf\httpd.conf
NameVirtualHost * <VirtualHost *> ServerName localhost:80 DocumentRoot /www ProxyRequests off <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> ProxyPassReverse / http://localhost:8080/ RewriteEngine On # Add a rewrite rule for each .Net app you wish to proxy. RewriteRule ^/DotNetApp(.*)$ http://localhost:8080/DotNetApp/$1 [P,L] </VirtualHost> |
Notes: Note: port 8080 If you set a different port for IIS use that |
Depending on your application you may need to preserve host headers. Try something like this:
NameVirtualHost * <VirtualHost *> ServerName localhost:80 DocumentRoot /www ProxyRequests off <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> RewriteEngine On ProxyVia Block ProxyPreserveHost On # Add a rewrite rule for each .Net app you wish to proxy. RewriteRule ^/DotNetApp(.*)$ http://localhost:8080/DotNetApp/$1 [P,L] </VirtualHost> |
Notes: Note: port 8080 If you set a different port for IIS use that |
Summary
It’s a shame! I have no examples for you to run, however the above shows the basic principals of proxying to IIS.
That really is the end of this tutorial series.
Ric |