Не знаю, правильно ли я сформулировал вопрос, но сейчас постараюсь объяснить проблему.
На сервере работает nginx, который перенаправляет домены на разные порты.
Задумывалось это так: все домены будут идти на 80 порт, а домены, на которых должны запускаться приложения на Node.js будут идти на порты 8080, 8000, 3000, 1337 и т.д., для того, чтобы запустить на одном сервере несколько приложений ноды, и сайт на PHP.
Выглядело это так:
server {
listen 80 default_server;
server_name localhost;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://IP_ADRESS:1337;
}
}
Все сайты идут на 80 порт, а example.com на порт 1337, там и запущено приложение на Node.js.
Вот в чем проблема:
Когда потребовалось использовать Socket.IO, то на сайте example.com, который перенаправляется на IP_ADRESS:1337 была ошибка:
WebSocket connection to 'ws://example.com/socket.io/?EIO=3&transport=websocket&sid=y1fxSfbvA-eqW6ayAAAZ' failed:
Error during WebSocket handshake: Unexpected response code: 400
Но когда я ставлю сайт example.com на 80 порт, т.е. по адресу example.com, открывается IP_ADRESS:80, такой ошибки нет и всё работает нормально.
Как же мне сделать, чтобы я мог запускать приложения ноды на разных портах и работать с socket.io?