Добрый день, реализую функцию через socket.io. Возникла проблема в том, что через домен не работали сокеты, т.е.
https://site.ru:2052 не выдавали ничего, лишь таймаут. Решил проксировать их через nginx.
Код nginx:
location ~* \.io {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:2052;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Теперь у меня сокет находится тут:
https://site.ru/socket.io => code:0 и message: Transport unknown, что свойственно для сокетов.
В файле жс создаю коннект
this.socket = io('https://site.ru/socket.io');
console.log(this.socket)
На что получаю ответ от сокетов, что коннекта то нет:
Object { io: {…}, nsp: "/socket.io", json: {…}, ids: 0, acks: {}, receiveBuffer: [], sendBuffer: [], connected: false, disconnected: true, flags: {}, … }
Я уже не знаю, что мне делать. Везде искал, но решения не нашёл. Что может быть? По какой причине он может не работать?
// Полный nginx файл
server {
server_name site.com;
listen <Айпи>:80;
listen <Айпи>:443 ssl ;
ssl_certificate "/var/www/httpd-cert/site.com_2022-08-07-00-10_28.crt";
ssl_certificate_key "/var/www/httpd-cert/site.com_2022-08-07-00-10_28.key";
location ~* \.io {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:2052;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
charset utf-8;
gzip on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/css text/xml application/javascript text/plain application/json image/svg+xml image/x-icon;
gzip_comp_level 1;
set $root_path /var/www/site/data/www/site.com;
root $root_path;
disable_symlinks if_not_owner from=$root_path;
location / {
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/site.com.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
try_files $uri $uri/ /index.php?$args;
}
location @fallback {
fastcgi_pass unix:/var/run/site.com.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
include "/etc/nginx/fastpanel2-sites/site/site.com.includes";
include /etc/nginx/fastpanel2-includes/*.conf;