Multiple TCP/HTTP servers with only one IP : how to ?

Multiple TCP/HTTP servers with only one IP : how to ?

Secure Home | Search | About
 Networking Firewalls    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content add this group's latest topics to your Google content
Subject Author Date
Multiple TCP/HTTP servers with only one IP : how to ? alt250 04-23-2005
Posted by on April 23, 2005, 4:40 am
If you were  Registered and logged in, you could reply and use other advanced thread options
I have a problem which can probably be solved with some kind of port
redirector which can redirect to different locations depending on
client request content.

Here is the problem description :

I have one Windows application which is a kind of real-time TCP and
HTTP server.
In order for the client software to be able to connect to a server on
the Internet without problems, the server must listen on ports HTTP
(80) and HTTPS (443).

I want to host multiple software servers on the same computer which as
only one public IP address.
So, for example, if i have 2 software servers on this computer they
will need to bind at the same time on ports 80 and 443 of the same
public IP.
AFAIK this is imposible.

I am currently looking for solutions in order to solve this problem.

One solution i imagine :

Note : The client software can communicate with the server both in TCP
and HTTP, so i can use only HTTP in this case.

Make the software servers listen on internal IPs or on another port on
the same computer.
For example, server1 will listen on 10.1.0.1 and server2 on 10.1.0.2.

This way it is possible to use a reverse proxy which will listen on
ports 80 and 443 of the public IP and redirect to the good internal
server depending on the client request URL.
For example, if the client send a GET http://server1.com/Index.html
this request will be interpreted by the reverse proxy which will
redirect to server1 on 10.1.10.1.

I tried with different reverse proxies (Apache, Squid, AT32 and a few
others), and this always failed.

This failed because when the reverse proxy receive a request, says for
http://server1.com/Bigfile.zip, it redirects the request to the
internal
server1, acting itself as the HTTP client. Then it waits to receive
BigFile.zip completly before transfering it back to the real client.
I suppose this mechanism is used in order to cache the web page for
next client requests.

The problem is my application use HTTP to stream data. For the reverse
proxy this is like big web pages which will never be complete. So this
didn't work.

One solution to this problem will be to use a reverse proxy which does
not wait for the internal page to be fully transfered before sending it
back to the client. But currently i didn't found one !

They are problably other solutions too, i am open to your suggestions.

Thank you in advance



Posted by Duane Arnold on April 23, 2005, 12:43 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
> They are problably other solutions too, i am open to your suggestions.
>

From what I understand, it's called Web Server Farming using a State server
using stateful sessions between the clients and the Web severs running the
same applications on multiple Web servers. The Web server farm control
server has the public IP and knows how to keep track of traffic going back
to internal IP(s) belonging to the Web servers. The client makes a request
of the application on the server and data is sent out. Then the user does a
post back and either the post back goes to the original Web server or the
control selects another Web server that has the same application. And with
the usage of a session state server keeping track of the client sessions,
everything is seamless.

This is a .Net solution.

Duane :)



Posted by Chris Kronberg on April 23, 2005, 1:56 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
alt250@gmail.com schrieb im Artikel
> I have a problem which can probably be solved with some kind of port
> redirector which can redirect to different locations depending on
> client request content.
>
> Here is the problem description :
>
> I have one Windows application which is a kind of real-time TCP and
> HTTP server.
> In order for the client software to be able to connect to a server on
> the Internet without problems, the server must listen on ports HTTP
> (80) and HTTPS (443).
>
> I want to host multiple software servers on the same computer which as
> only one public IP address.
> So, for example, if i have 2 software servers on this computer they
> will need to bind at the same time on ports 80 and 443 of the same
> public IP.
> AFAIK this is imposible.
>
> I am currently looking for solutions in order to solve this problem.

I, too, have just one IP address. Right now there are seven webservers
configured and running. All on 80/tcp. The solution was named based
virtual webservers. Might be a solution for you, too, yet I'm not
sure if your software supports that.
A second server instance is running for 443/tcp traffic. When
working with named based virtual servers you cannot comine 80/tcp
and 443/tcp in one singel webserver instance.

Cheers,


Chris.



Similar ThreadsPosted
pix and multiple syslog-ng servers October 25, 2006, 2:09 pm
PIX firewalling web servers July 23, 2004, 4:06 pm
Re: PIX firewalling web servers July 26, 2004, 10:35 am
5XP Virtual Servers AND SSH August 3, 2005, 6:29 pm
netcreen 25 dmz web servers October 30, 2005, 10:50 am
106023: Deny tcp src outside from WWW Servers September 7, 2005, 5:04 am
Zonealarm blocking all UDP servers November 7, 2007, 8:37 pm
ZoneAlarm: All Internet Servers Set Disallow July 23, 2005, 7:03 pm
Any public port forwarding servers available ? April 18, 2006, 9:10 am
Watchguard Firebox III, OWA and 2 Exchange Servers January 17, 2007, 3:31 pm

The site map in XML format XML site map

Contact Us | Privacy Policy