У меня есть приложение в nodejs и PHP. На данный момент я использую разные оба.
Могу ли я запустить узел и Apache на одном и том же порту 8080
Есть ли способ запустить любое приложение как на 8080
Спасибо
Порт обычно подключен только к одному приложению. Таким образом, вы должны использовать разные порты.
полномочие —
Но вы можете, например, создать виртуальный хост в Apache и настроить его как прокси. В этой конфигурации вы можете получить доступ к серверу node.js через тот же порт. Сервер node.js будет работать на другом порту.
Для приложений на базе TCP нет. Вы можете одновременно прослушивать только одно приложение на одном порту. Если бы у вас было 2 сетевых карты, одно приложение могло бы прослушивать первый IP-адрес, а второе — второй IP-адрес, оба с использованием порта 8080 …. но я сомневаюсь, что это ваш случай.
Я предполагаю, что вы можете запустить их по протоколу UDP, который может позволить двум приложениям прослушивать один и тот же порт, но поскольку UDP ненадежен и не устанавливает соединение, он просто отправляет / получает пакеты. Вы можете столкнуться с большой потерей пакетов в UDP.
Итак, короткий ответ — нет.
На самом деле, может быть способ использовать iptables. Добавить правило такого рода
iptables -A INPUT \ -p tcp \ -m bpf --bytecode "14,0 0 0 20,177" -j redirect .. Порт 80
Проверьте первые несколько байтов соединения и перенаправьте соединение. Затем вы можете принять и http, и node.js на одном и том же порту, но серверы должны работать на разных портах.
Синтаксис выше неправильный, и я не пробовал его, но я знаю людей, которые успешно использовали эту стратегию.