Задать вопрос
r0n1x
@r0n1x
html, css, js

Nodejs + expressjs + http2?

Собственно решил перевести сайт на https. Получил сертификат.

const   
    fs = require('fs'),
    express = require('express'),
    app = express(),
    http = require('http'),
    http2 = require('http2'),
    https = require('https'),
    spdy = require('spdy');

app.use(express.static(__dirname + '/public'));

const 
    credentials = {
        key: fs.readFileSync('./sslcert/privkey.pem', 'utf8'),
        cert: fs.readFileSync('./sslcert/cert.pem', 'utf8'),
        ca: fs.readFileSync('./sslcert/chain.pem', 'utf8')
    };

http
    .createServer(app)
    .listen(80, (error) => {
        if (error) {
            console.error(error)
            return process.exit(1)
        } else {
            console.log('Listening on port: 80.')
        }
    });

https
    .createServer(credentials, app)
    .listen(443, (error) => {
        if (error) {
            console.error(error)
            return process.exit(1)
        } else {
            console.log('Listening on port: 443.')
        }
    });


Единственный "рабочий" вариант, НО до сих пор отображается HTTP/1.1.
Пробовал с помощью spdy - ошибка "RangeError: Invalid typed array length: -4095".
Через http2 сайт вообще отказывается открываться.

Кто сталкивался с переездом? По какому мануалу делали и как получилось?

https://dassur.ma/things/h2setup/ https://webapplog.com/http2-node/ пробовал, в частности, по этим рекомендациям\мануалам
  • Вопрос задан
  • 2795 просмотров
Подписаться 2 Средний 1 комментарий
Ответ пользователя Ростислав К ответам на вопрос (3)
Я просто в nginx прописал http2 и всё норм отображается, те клиенты которые могут использовать http2 получают его те кто нет получают 1.1, гугл дал доп балы по СЕО за это.

Там где бот предложеный выше ставит настройки сертификата нужно просто дописать http2
listen 443 ssl http2
Ответ написан
Комментировать