Прокси-сервер с Node.js на Heroku

Я пытаюсь создать прокси-сервер с Node.js на Heroku, используя http-proxy. Локально все работает нормально, но у меня проблемы с 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);

Как вы можете видеть в примере, я установил объект маршрутизации. То, что я говорю, это: когда запрос соответствует «/ устройствам»; затем направьте запрос в службу устройства. (идентифицируется переменной среды DEVICES_URI)

В разработке я поставил

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

Это означает, что все запросы, идущие к localhost: 8000 / устройств, проксируются localhost: 3000 / устройств, что я и хочу. Все работает отлично.

Проблема в производстве. Это дает мне ошибку тайм-аута, повторенную несколько раз за каждый запрос.

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

В производственной среде переменные настроены на имена приложений.

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

Я предполагаю, что я ошибаюсь, некоторые конфигурации, но после целого дня я все еще не в состоянии понять это.

Update

Я продолжил свои тесты и увидел, что прокси-сервер не может получить доступ к прокси-серверу, что полностью останавливает меня.

В разработке я установил:

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

Если я позвонюhttp://lelylan-devices.herokuapp.com/devices все отлично работает

Если я позвоню localhost: 8000 / devices (что указывает наhttp://lelylan-devices.herokuapp.com/devices) Heroku говорит мне, что такого приложения нет. Я думаю, что проблема как-то в системе маршрутизации.

Здесь вы можете получить доступ наисходный код. Here the configuration vars for 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

Ответы на вопрос(2)

Ваш ответ на вопрос