Задать вопрос

Как настроить socket.io для https?

Всем привет.
Пытаюсь заставить socket.js работать через https.
Все работает с настройками для HTTP и через IP сервера (у меня впс) по HTTPS, а вот через поддомен на котором есть HTTPS - не работает.

Такие настройки:

Запускаемый скрипт nodejs:
var fs = require('fs');
var https = require('https');

var options = {
    key: fs.readFileSync('/var/www/httpd-cert/site/айписервера.key'),
    cert: fs.readFileSync('/var/www/httpd-cert/site/айписервера.crt')
};

server = https.createServer(options);
var io = require('/usr/local/lib/node_modules/socket.io').listen(server);
server.listen(900);


И nginx.conf:

# in the http{} configuration block
upstream socket_nodes {
    ip_hash;
    server io.domain:900 weight=5;
    server io.domain:900;
    server io.domain:900;
    server io.domain:900;
}

server {
    server_name io.domain.com;
    location / {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://socket_nodes;
    }
}


При запуске, начинается "бесконечное ожидание" по https://io.domain:900 и https://io.domain:900/socket.io/socket.io.js
И как я писал выше , по айпи впс: https://ipvps:900 и https://io.ipvps:900/socket.io/socket.io.js все работает...
  • Вопрос задан
  • 569 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
https должен быть только на фронт-сервере, в Вашем случае на nginx
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
proxy_pass http://socket_nodes;
Вам надо или сокет.ио по http чтобы работал, либо проксить на httpS://socket_nodes
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы