Предоставляет ли "heroku local" прокси HTTPS? - PullRequest
0 голосов
/ 23 февраля 2020

Я поиграл с приложением nodejs на Heroku и довольно легко настроил HTTPS, используя Автоматическое управление сертификатами Heroku , которое управляет сертификатами, а также добавляет заголовки к входящие запросы, чтобы я мог видеть, пришел ли он через HTTP или HTTPS.

Я столкнулся с некоторыми головными болями, развивающимися локально, поскольку моя локальная машина не добавляла эти заголовки, и логика c, чтобы определить, был ли я локальным, протекала по всему моему приложению. Я закончил тем, что использовал http-proxy lib узла, чтобы обернуть мое приложение при локальном запуске, что работало довольно хорошо даже при добавлении заголовков X, которые использовало мое приложение.

if (IN_DEVELOPMENT) {
    const proxiedPort = 9090; // don't hit this directly
    startServer(proxiedPort);

    const httpProxy = require('http-proxy')

    httpProxy.createServer({
        target: {
            host: 'localhost',
            port: proxiedPort
        },
        ssl: {
            key: fs.readFileSync('./dummy/key.pem', 'utf8'),
            cert: fs.readFileSync('./dummy/cert.pem', 'utf8')
        },
        xfwd: true // add X-Forward-* headers as Heroku does
    }).listen(EXTERNAL_PORT);
} else {
   startServer(EXTERNAL_PORT);
}

После некоторой дополнительной разработки я услышал о команде heroku local , которая запускает вещи локально и подумала, что я полный идиот, чтобы тратить время на настройку прокси, но после некоторого тестируя, я просто запускаю мое приложение, используя Procfile , и мне все еще нужно запустить этот прокси локально.

Есть ли в CLI Heroku встроенный рабочий процесс для обработки HTTPS-прокси?

...