Я установил
centrifugo it's real-time messaging server.
Сделал вот такой конфиг.
{
"secret": "a4b36637-1e1f-4865-840e-bed40c6253f9",
"token_hmac_secret_key": "9adb9887-638a-4e39-badf-b276c64afbdc",
"admin_password": "e21f5db0-fcf5-453c-89b7-9a5b9a8ab413",
"admin_secret": "a4b36637-1e1f-4865-840e-bed40c6253f9",
"api_key": "4271d87c-e014-40b0-886c-7778db912206",
"prometheus": true,
"debug": false,
"anonymous": false,
"client_insecure": false,
"port": 8000,
"address": "127.0.0.1",
"namespaces": [
{
"name": "public",
"publish": true,
"watch": true,
"anonymous": true,
"presence": true,
"join_leave": true,
"recover": false,
"history_size": 10,
"history_lifetime": 30
}
]
}
Добавил в nginx блок для centifugo как это показано
тут
location /centrifugo/ {
rewrite ^/centrifugo/(.*) /$1 break;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://127.0.0.1:8000;
}
location /centrifugo/connection {
rewrite ^/centrifugo(.*) $1 break;
proxy_next_upstream error;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
proxy_buffering off;
keepalive_timeout 65;
proxy_pass http://127.0.0.1:8000;
proxy_read_timeout 60s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
Когда я не запускаю centifugo и перехожу по ссылкам site.com/centrifugo/ site.com/centrifugo/admin и так далее крч по всем выдает 502.
Когда я запускаю centifugo и перехожу по ссылке site.com/centrifugo/ выдает 404 в консоле, site.com/centrifugo/admin, site.com/centrifugo/admin/auth/ прямо в html рисуется 404 page not found. site.com/centrifugo/connection/sockjs/ выдает Welcome to SockJS!
site.com/centrifugo/connection/websocket выдает bad request.
Но я уже понял что sockjs, websocket и api вроде работает проверил, кроме centrifugo/admin/auth/
Вообщем работает очень странно, почему может не работать веб интерфейс ?
Для запуска использую команду centrifugo -c config.json --admin
при запуске пишет в консоль
serving websocket, SockJS, API, admin, prometheus, debug, health endpoints on 127.0.0.1:8000
Я так понимаю что все запускается, но не работает почему-то веб-интерфейс.
Также когда пытаюсь подписать на privateChannel отправляет запрос на site.com/centrifuge/subscribe и еще в js файле есть site.com/centrifuge/refresh у меня nginx такие пути не обрабатываются и как вообще их нужно обрабатывать ?
Крч с таким js кодом выдает
wrong status code in AJAX response 404
{message: "authorization request failed", code: 0, channel: "$private", isResubscribe: false}
let privateSub = centrifuge.subscribe('$private', function (message) {
console.log(message);
});
privateSub.on('error', (c) => console.log(c));
Как решать такую проблему ?
Когда нужно использовать generateConnectionToken, а когда generatePrivateChannelToken ?
Всем спасибо, заранее.
Для сервера стоит cloudflare, а через nginx пытаюсь наладить работу. Сервер работает через https.