Відповіді:
Для цього вам потрібно використовувати зворотний проксі, наприклад Apache 2.4. з mod_proxy_wstunnel .
Використовуйте це як передній план, а потім тунель підключень до відповідного сервера
Лише один процес може прослуховувати певний порт для тієї ж IP-адреси та протоколу, оскільки в іншому випадку операційна система не знає, в який процес надсилати отриманий пакет.
Щоб досягти того, що ви хочете, вам доведеться використовувати зворотний проксі-сервер, який прослуховуватиме порт 80 та переадресовує трафік для корекції пункту призначення. Існує кілька способів зробити це. Наприклад, ви можете налаштувати свій веб-сервер (Apache) для переадресації запитів WebSocket або ви можете налаштувати Node.js для пересилання HTTP-трафіку. Дослідіть доступні варіанти та виберіть той, який найкраще відповідає вашим потребам.
Окрім варіанту зворотного проксі, який інші вже згадували, ви можете мати кілька IP-адрес, призначених машині. Це може коштувати для IPv4 (або просто недоступне, залежно від того, де розміщений ваш сервер), але не повинно бути, якщо ви в змозі використовувати IPv6 (тобто якщо люди, які підключаються до однієї або обох або ваших служб, зможуть підтримувати IPv6) . Таким чином обидва сервіси можуть прослуховувати порт 80 за різними адресами.
Оскільки ви згадуєте лише порт 80, я вважаю, що ви не використовуєте HTTPS. Якщо ви тоді використовуєте опцію зворотного проксі, вам потрібно мати сертифікат SSL з декількома іменами або налаштувати SNI і жити з тим, що деякі старі клієнти (IE на XP, старі версії Android) не зможуть підключити без помилок. Параметр з декількома адресами обходить цю проблему за рахунок необхідності присвоєння додаткових адрес.