Проверка связи с сервером Node.js из PHP на AWS - PullRequest
6 голосов
/ 03 марта 2011

У меня есть длинная процедура, которую я написал в файле node.js, но я бы хотел, чтобы PHP-сторона моего приложения отключила его.Мой узел выглядит примерно так:

var http = require('http');

http.createServer(function (req, res) {
  console.log('Got request')

  try{
    doProcedure()
  } catch(e) {
    console.log('Really bad error while trying to do the procedure:')
    console.error(e.stack ? e.stack : e)
  }

}).listen(8124, "127.0.0.1");

Когда я запускаю это на своей локальной машине, http://localhost:8124 будет запускать вещи правильно.На aws я добавил порт 8124, но запросы к mydomain.com:8124 не принимаются узлом.

Port settings in AWS

Я попытался остановить httpd и затем позволить узлу прослушивать порт 80, чтобы исключить неправильную переадресацию портов, но он все равно ничего не увидел.

Итак, я думаю, два вопроса:

  1. Как заставить Node слушать как демон, чтобы я мог передавать запросы? ("обновить пользователя x", «обновить пользователя y», «обновить всех пользователей» и т. д.)
  2. Как пропинговать этого демона из php, чтобы запустить эти процедуры в среде AWS?

Бонусный вопрос: есть ли лучший способ, которым я должен это делать?

Спасибо всем,
~ Джордан

Ответы [ 3 ]

4 голосов
/ 03 марта 2011

Если вы опустите второй аргумент для listen (), узел будет прослушивать все IP-адреса. Таким образом, вы можете запустить тот же код локально для тестирования, а также для своего экземпляра EC2.

В вашем блоке перехвата вы также можете отправить клиенту ответ об ошибке HTTP.

2 голосов
/ 03 марта 2011

у вас должно быть 10. * ip iirc для aws, ваш эластичный / динамический ip не может быть привязан к

0 голосов
/ 03 марта 2011

вы пытались использовать IP-адрес вашего сервера (вместо 127.0.0.1) в вызове createServer.listen ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...