У меня проблема с запуском сервера веб-сокетов в Nginx. Это мой Nginx default.conf:
upstream websocket {
server xx.xx.xx.xx:8080;
}
server {
listen 80;
listen [::]:80;
server_name domain.com *.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl on;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name domain.com *.domain.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location /ws {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
Я получаю следующую ошибку в chrome :
(индекс): 2 Соединение WebSocket с 'wss: //xx.xx.xx.xx/ws: 8080' не удалось: ошибка при установлении соединения: net :: ERR_CERT_COMMON_NAME_INVALID
Я думаю, что это как-то связано с сертификатами (SSL), но я действительно не знаю, как это исправить!
Заранее спасибо!
Edit:
Мой файл index.php -
<script>
var conn = new WebSocket('wss://xx.xx.xx.xx/ws');
conn.onopen = function(e) {
console.log("Connection established!");
};
</script>
Когда я меняю xx.xx.xx.xx на domain.com, я получаю код ошибки рукопожатия 504.
Кстати, я запускаю сервер веб-сокетов через php (php server.php) с храповым механизмом, следуя этому примеру: http://socketo.me/docs/hello-world