Ответы пользователя по тегу Nginx
  • Как заставить работать прокси socket.io через nginx на Ubuntu?

    @Abcdefgk
    Короче, я тут поковырялся. И у меня получилось за Нгинксом его заставить работать, но только - создавая "пространство имён" принудительно.
    На клиенте запрос на подключение выглядит так
    var socket = io('http://localhost/sock');
    на сервере так
    var io = require('socket.io')(3001); // спицально ему другой порт прикрутил, для "чистоты эксперимента"
    var chat = io.of('/sock');
    chat.on('connection', socket => { ...

    и дальше везде, где был io в коде - заменить на переменную chat - типа chat.to(socket.id).emit... и т.д. (хотя, видимо, можно было и просто - io переопределить: io = io.of('/sock');).
    И наконец, Nginx его перенаправляет так
    location /sock {
    						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://127.0.0.1:3001/sock;
    				}

    Так всё зафурычило.
    Ответ написан
    2 комментария