Как мне реализовать HTTP, HTTPS и HTTP / 2 в целом? - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь найти способ реализовать в моем сервере REST API поддержку HTTP, HTTPS и HTTP / 2 в целом? Я не знаю, заменяет ли HTTP / 2 HTTPS и HTTP или они должны сосуществовать для аварийного восстановления.

Я пытался создать сервер с этими тремя технологиями, но он отказывает в соединении, я действительно незнаю, как с этим справиться.

//normal express app
const app = require('./app');

const http = require('http');
const https = require('https');
const http2 = require('http2');

const privateKey = fs.readFileSync(config.sslPrivateKey, 'utf8');
const certificate = fs.readFileSync(config.sslCertificate, 'utf8');
const ca = fs.readFileSync(config.sslCa, 'utf8');

const credentials = {
    key: privateKey,
    cert: certificate,
    ca: ca,
};


const httpServer = http.createServer(app);
const httpsServer = https.createServer(credentials, app);
const http2Server = http2.createSecureServer(credentials, app);

httpServer.listen(config.port, () => {
  console.log(`Server HTTP running in port: ${ config.httpPort }!`);
});

httpServer.listen(config.port, () => {
  console.log(`Server HTTPS running in port: ${ config.httpsPort }!`);
});

http2Server.listen(config.port, () => {
  console.log(`Server HTTP/2 running in port: ${ config.http2Port }!`);
});

Я ожидаю, что сервер будет работать с HTTP + HTTPS (HTTP / 1.1) и HTTP2 с поддержкой отката для браузеров, поддерживающих только HTTP / 1.1.

Спасибо!

...