Serwer proxy z Node.js na Heroku

Próbuję zbudować serwer proxy z Node.js na Heroku, używając proxy http. Wszystko działa dobrze lokalnie, ale mam pewne problemy na Heroku.

var http = require('http');
var httpProxy = require('http-proxy');

settings = {
  "localhost": process.env.LOCALHOST,
  "devices":   process.env.DEVICES_URI
}

var options = { router: { } }
options.router[settings.localhost + '/devices']  = settings.devices + '/devices';

var port   = process.env.PORT || 8000;
var server = httpProxy.createServer(options).listen(port);

Jak widać w przykładzie, ustawiam obiekt routingu. To, co mówię, jest następujące: gdy żądanie pasuje do „/ urządzeń”, skieruj żądanie do usługi urządzenia. (identyfikowane przez DEVICES_URI environment var)

W trakcie opracowywania ustawiłem

LOCALHOST = 'localhost'DEVICES_URI = 'http: // localhost: 3000'

Oznacza to, że wszystkie żądania kierowane do localhost: 8000 / urządzeń są proxy dla localhost: 3000 / urządzeń, czego chcę. Wszystko działa idealnie.

Problem tkwi w produkcji. Daje mi błąd limitu czasu powtarzany wielokrotnie dla każdego żądania.

2012-08-23T20:18:20+00:00 heroku[router]: Error H12 (Request timeout) -> GET lelylan-api.herokuapp.com/devices dyno=web.1 queue= wait= service=30000ms status=503 bytes=0

W produkcji vars środowiska są skonfigurowane do nazw aplikacji.

LOCALHOST = 'lelylan-api.herokuapp.com'DEVICES_URI = 'lelylan-devices.herokuapp.com/'

Myślę, że się mylę, niektóre konfiguracje, ale po całym dniu wciąż nie jestem w stanie tego zrozumieć.

Aktualizacja

Kontynuowałem testy i widziałem, że proxy nie jest w stanie dotrzeć do usługi proxy, która całkowicie mnie zatrzymuje.

W trakcie opracowywania ustawiłem:

LOCALHOST = 'localhost'DEVICES_URI = 'lelylan-devices.herokuapp.com/'

Jeśli zadzwonięhttp://lelylan-devices.herokuapp.com/devices wszystko dziala.

Jeśli zadzwonię na localhost: 8000 / urządzenia (co wskazuje nahttp://lelylan-devices.herokuapp.com/devices) Heroku mówi mi, że nie ma takiej aplikacji. Myślę, że problem jest w jakiś sposób w systemie routingu.

Tutaj możesz uzyskać dostęp na stroniekod źródłowy. Oto konfiguracja vars dla Heroku.

NODE_ENV      => production
LOCALHOST     => lelylan-api.herokuapp.com
DEVICES_URI   => lelylan-devices.herokuapp.com
TYPES_URI     => lelylan-types.herokuapp.com
LOCATIONS_URI => lelylan-locations.herokuapp.com

questionAnswers(2)

yourAnswerToTheQuestion