Kristofer
Tue Jul 12 14:57:50 CDT 2005
> How do i set up a host header to redirect to a linux machine?
IIS out-of-the-box cannot do what you need. IIS does have a redirect
feature, but it instructs the client to make a new request to the new
server (which wouldn't work in your case, because there is only one public
server). Consider this scenario:
1) Client uses www.newwebsite.net to connect to your website.
2) This is translated to the external IP and the request eventually gets
to the IIS machine (since i do not know anything about your network, i
don't know if there is any device in between IIS and Internet), and a
connection is made.
3) IIS looks at the requests, and sees that it should redirect it to
linuxserverip.company.local (based on what you configure in IIS Manager).
4) But here comes the problem. IIS sends a reply back to the client, and
instructs it to make a new connection to linuxserverip.company.local.
Since the client is located outside your LAN, it will fail (it cannot
connect to linuxserverip.company.local because it does not exist ouside
your LAN).
So what you need is a third-party product. There are atleast two different
categories of products that can do this; Reverse proxies and ISAPI
filters. Both these looks at the host header, and can therefore be used
without a second public IP. A second public IP (and the other webserver
made public) is preferable, and may in some situations be the only way (it
depends on the complexity of the website(s) ).
ISAPI Filter
An ISAPI filter operates on top of IIS (you can say that it extends the
functionality of IIS). This means that it is dependent on IIS. In a simple
scenario, it would work like this:
1) Step 1 and 2 above is performed.
2) IIS "sends" the request to the ISAPI filter, which looks at the host
header. It sees that it should send the request to
linuxserverip.company.local (based on your configuration), and do this.
3) Now webserver1 (IIS) acts as a client to webserver2 (the linux server).
4) The linux server processes the request, and sends the data back to
webserver1.
5) IIS sends the data to the initial client (the one used in step 1)
Reverse Proxy
A reverse proxy is similar, but it is not dependent on IIS (it is a
separate application). A simple scenario would look like:
1) Step 1 above is performed
2) Instead of the request getting to IIS, it is getting to the reverse
proxy.
3) The reverse proxy checks the host header, and takes action (either send
the request to the IIS server, or the linux server). Now the reverse proxy
is acting as a client to the webserver.
4) The webserver processes the request, and sends back the data to the
reverse proxy.
5) The reverse proxy sends the data to the initial client (the one used in
step 1).
So i cannot answer your question "How do i set up a host header to
redirect to a linux machine?", because the answer is dependent on the
third-party product you choose to use. There is no step-by-step
instructions how to do this in IIS, because it is not possible to do with
IIS.
> Maybe you dont think newbies belong in this group and I should go away
but I'm just giving you feedback.
I try to help everyone no matter of their knowledge. But it is nearly
impossible to understand the knowledge of the other person by only reading
a message that is a few hundred words. I also do not keep track of any
people (it would be impossible), so if i have had contact with someone
before, i do not use that information to figure out their knowledge in
their new post.
So i need to make some assumptions about the other person, and almost
always also about their problem (because not enough of information is
given).
--
Regards,
Kristofer Gafvert (IIS MVP)
www.gafvert.info - My Articles and help
www.ilopia.com
Dean Collins wrote:
> Kristofer, to be honest your answer didn't tell me anything I dont
already know, and I found the link very confusing.
>
> Maybe you dont think newbies belong in this group and I should go away
but I'm just giving you feedback.
>
> I'll restate it again in case you thought I know what I'm doing
> I currently use host headers to host two seperate web sites on the sbs
2003 but my third one must be running on a linux server.
>
> How do i set up a host header to redirect to a linux machine?
>
> My cable modem doesn't connect directly to the linux server so multiple
ip's aren't the answer.
>
> What is an Isapi filter? how do I do this?
> How do i find out if ISA is installed?
>
>
> thanks in advance,
> Dean(newbie)
>
>
>
>
>
> "Kristofer Gafvert [MVP]" <kgafvert@NEWSilopia.com> wrote in message
news:xn0e4o0ulaileed00w@news.microsoft.com...
> > Well, you have one external IP. Right now if someone uses that IP to
make > a connection, they get to the SBS machine. You have probably some
kind of > firewall or router or something else that is doing this (sending
the > request to the webserver on the LAN).
> >
> > What you are asking for here is how to send the request to another >
machine, based on the host header. Firewalls/routers do not in general >
inspect the HTTP packet, and can therefore not select to which machine to
> forward the request. So what you need is a device that can make this >
selection.
> >
> > A reverse proxy is one solution. ISA Server can act as a reverse proxy
> (which you probably have in the SBS machine).
> >
> > Another solution is to use multiple IPs (since a router can work with
> IPs).
> >
> > A third solution is to use an ISAPI filter.
> >
> > Also see:
> >
http://www.gafvert.info/notes/OneIPMultipleWebservers.htm
> >
> > Good luck!
> >
> >
> > -- > Regards,
> > Kristofer Gafvert (IIS MVP)
> > www.gafvert.info - My Articles and help
> > www.ilopia.com
> >
> >
> > Dean Collins wrote:
> >
> > >
> >> I have a new website application that wont run on windows, currently I
> > host
> >> my own company domain (and a smaller private web site selected by host
> >> headers) on my sbs 2003 server, this new website will be hosted on a
new
> >> linux server.
> > >
> >> I have purchased a linux server and it is now connected to my lan
(cable
> >> modem - sbs server 2003 with two nics, 1 external & 1 internal - 16
port
> >> gigabit switch) it is accessible now from within my lan by both
internal
> > ip
> >> address and web domain name (enabled using dns pointer).
> > >
> >> I know how to set up a web site in the www root folder of sbs 2003, I
> > also
> >> know how to redirect it to the web folder of another windows machine
but
> > I
> >> don't know how to redirect it to the web folder of a linux machine.
> > >
> >> Currently if you go to www.newwebsite.net the internet name servers
> > points
> >> it to the ip address of my sbs 2003 server via www.no-ip.com (which
works
> >> great for my main domain (and smaller private domain) etc that are
> > running
> >> on the server).
> > >
> >> But this newwebsite is running on a linux server on my lan with the ip
> >> address of 192.168.16.15
> > >
> >> When I type in
http://192.168.16.15 it works great,
> >> When I type in
http://linuxserverip.company.local it works great as
well
> > >
> >> And finally
> >> When I type in www.newwebsite.net it works fine for me because my dns
> > knows
> >> to point to
http://linuxserverip.company.local However if you type
that
> > in
> >> from outside my lan it fails.
> > >
> > >
> >> How do i redirect to a linux webserver on my domain?
> > >
> > >
> >> Cheers,
> >> Dean