Ставлю скрипт рулетки вещей. Есть связка apache + nodejs + socket.io. Если зайти на сайт по айпи адресу, то сайт коннектится к боту по сокету, в консоли все нормально. Если зайти на сайт по домену, то ругается двумя ошибками:
GET https://site.ru:2053/socket.io/?EIO=3&transport=polling&t=1564049380135-11 521
Access to XMLHttpRequest at 'https://site.ru:2053/socket.io/?EIO=3&transport=polling&t=1564049380135-11' from origin 'https://site.ru' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Пробовал настроить CORS добавив в .htaccess
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
но не помогло.
На сайте в скриптах используется соединение
var socket = io.connect(':2053');
также пробовал указать
var socket = io.connect(https://site.ru':2053');
, ничего не помогло.
App.js для старта бота используется с таким конфигом:
var auth = require('http-auth'),
scribe = require('scribe-js')(),
console = process.console,
config = require('./config.js'),
app = require('express')(),
server = require('https').Server(app),
io = require('socket.io')(https),
redis = require('redis'),
requestify = require('requestify'),
fs = require('fs'),
privateKey = fs.readFileSync('/var/www/bot/keys/privkey.pem'),
certificate = fs.readFileSync('/var/www/bot/keys/cert.pem'),
credentials = {key: privateKey, cert: certificate},
https = require('https').Server(credentials,app);
https.listen(config.serverPort);
Использую cloudflare, поэтому порт 2053, тот который у них открыт.
В чем может быть проблема?