Запустите node.js и PHP / apache на одном экземпляре в AWS

Я установил узел JS на Ec2 мой сайт и домен работают нормально, но когда я пытаюсь запустить узел js, он не запускается.

Я следовал некоторому учебнику, и я сделал следующий шаг на моем AWS.

 1. I have added a port 9000 on my security group
2. I have done the pre-routing on iptables using below command

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9000

Но после выполнения вышеуказанного кода мой домен перестает работать, значит, когда я пытаюсь открыть свой сайт mydomain.com, он ничего не показывает, и если я удаляю это правило, то снова оно работает.

Я также попробовал приведенное ниже решение для запуска узла в качестве корневого уровня для прослушивания порта на 80.

sudo node server.js

но после этого я получаю ошибку ниже

Error: listen EADDRINUSE :::80
at Object.exports._errnoException (util.js:949:11)
at exports._exceptionWithHostPort (util.js:972:20)
at Server._listen2 (net.js:1253:14)
at listen (net.js:1289:10)
at Server.listen (net.js:1385:5)
at Object.<anonymous> (/home/mcook/domains/development.mcook.co.in/public_html/server.js:36:5)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:456:32)
at tryModuleLoad (module.js:415:12)

Я просто хочу, чтобы мой узел и мой сайт должны были работать и для того, какую команду и порт мне нужно запустить.

0

Решение

Следующая команда переадресует весь ваш трафик ПОРТ 80 в ПОРТ 9000.

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9000

Почему ты так делаешь? Как вы уже открыли ПОРТ 9000 от групп безопасности AWS, чтобы вы могли сделать Node.js подключиться на ПОРТ 9000 прямо из кода.

Причина, по которой вы видите пустую страницу после выполнения вышеуказанного кода, заключается в том, что ваш веб-сервер работает на PORT 80 и каждый запрос перенаправляется на сервер node.js на порт 9000, который на самом деле не имеет ничего отображать.

Поэтому не запускайте вышеуказанную команду, просто запустите сервер node.js на PORT 9000 и установите соединение с PORT 9000 только с клиента.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]