Я видел нечто подобное при проксировании запросов в другой домен. Обходной путь, который я использовал, состоял в том, чтобы изменить заголовок узла в запросе прокси, чтобы он соответствовал имени домена, которое ожидает удаленный сайт. Так что в вашем случае код будет выглядеть так:
var http = require('http'),
httpProxy = require('http-proxy');
var server = httpProxy.createServer(function (req, res, proxy) {
req.headers.host = 'myapp.heroku.com';
proxy.proxyRequest(req, res, {
port: 80,
host: 'myapp.heroku.com'
});
}).listen(9000);
Мне было бы интересно узнать, работает ли это для вас.