Hello Don,

to expand your knowledge a bit…


Am 19.05.2024 um 05:04 schrieb Don Brown via MIDRANGE-L <midrange-l@xxxxxxxxxxxxxxxxxx>:

Thank you for your reply but I do not see how I can have 2 different HTTP servers both listening on port 443 without assigning a different IP address to each ?

Apache has a main thread — or process — listening on the socket for Ports 80 and probably 443, and that one dispatches work according to the configuration to "workers" which do the actual content serving. There is no "fight" for the port because the port is allocated and served by a shared code path within Apache. (To be precise, there is no fight for the socket bind() call to succeed.)

The http/1.1 specification from 1997 mandates that compatible clients should (?) use the back then new header "host". It's generated by the client and allows the server to route the request to the desired virtual host, being the one thing which is distinct in the request. "Virtual" because you don't need a completely separate web server instance for that, being differentiated by separate ports or IP addresses, but (for Apache) configuration directives ServerName and ServerAlias.

https://datatracker.ietf.org/doc/html/rfc2616#section-14.23

You can see this development as the "server side" answer to NAT, to counter the scarcity of IP addresses, which was a concern in the 1990's. At least in Germany. (Using different ports isn't really feasible in practice: How is anyone supposed to know which website uses which port on a given IP address? This is why well-known ports — such as 80 for http — have been specified.)

Browsers adopted the new header fairly quickly. The rest is history.

So I currently have HTTP Server ZENDPHP7 listening on port 443.

I am migrating the applications to run with Sieden's Community PHP and I have a new server APP01 that I also want to listen on port 443

I don't see how I can achieve that with virtual servers or am I not understanding ?

You're probably still assuming the behavior of the very old IBM web server of V4R5? AFAIK this one is not http 1.1 aware and thus can't distinguish desired websites with the host header from clients. This requires some element being distinct to allow requests ending up on the correct server instance: Port or IP address.


Hope that clarifies things further for you (and others!).

:wq! PoC




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.