У меня есть файл nginx.conf, указанный ниже, для обработки http и https. В настоящее время я использую самозаверяющий сертификат для тестирования по ssl.
server {
listen 80;
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://node:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /socketcluster/ {
proxy_pass http://node:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
Когда я пытаюсь подключиться через localhost. http, https и ws: // вроде работают нормально. Однако, когда клиент пытается подключиться через wss: //. я получаю ошибку ниже
WebSocket connection to 'wss://localhost:80/socketcluster/' failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR
мой журнал nginx показывает это -
nginx | 172.18.0.1 - - [25/Aug/2016:20:34:51 +0000] "\x16\x03\x01\x00\x7F\x01\x00\x00{\x03\x02\xB0\x80r\xEEH\x8C\x03\xAFFw\x9A4\xC2\x84\xB6\xD9\x9E;|\xDFbD\x1D\xF6)Ai\xB3<C\x13O\x00\x00\x10\xC0" 400 173 "-" "-"
Is there something additional i have to be adding to the nginx conf file to get wss:// to work?
Следует ли у вас подключение к 443? например wss: // локальный: 443 / socketcluster /.
порт 80 не настроен для ssl и поэтому не отвечает на подтверждение ssl.
Равно (как Вот) вы можете позвонить напрямую без указания порта (порты по умолчанию 80 и 443), например. wss: // localhost / socketcluster /.