Page 1 of 1
Настройка для работы websocket (wss)
Posted: Tue Aug 29, 2017 2:18 pm
by Garik
Добрый день.
Имеется рабочий websocket-сервер. При обращении по обычному соединению ws://site.ru:8088 подключается без проблем. Но никак не удается настроить безопасное соединение wss://site.ru:8088. Сертификат Let's Encrypt к домену прикручен, сайт по https:// успешно открывается, на сертификат не ругается.
Не подскажете, что и где нужно прописать в конфигах, дабы проходило соединение по wss://?
Стоит Ubuntu 16.04 + VestaCP
Re: Настройка для работы websocket (wss)
Posted: Tue Aug 29, 2017 6:58 pm
by Garik
В общем, проблема решилась.
Если кому то пригодится.
Заменить:
<ip_address> - ваш IP
domen_name.ru - ваш домен
8088 - ваш порт на котором висит websocket-сервер
WS-сервер будет доступен из клиента как: wss://domen_name.ru/ws/
Code: Select all
#/home/admin/conf/web/snginx.conf
upstream websocket {
server domen_name.ru:8088;
}
server {
listen <ip_address>:443;
server_name domen_name.ru www.domen_name.ru;
ssl on;
ssl_certificate /home/admin/conf/web/ssl.domen_name.ru.pem;
ssl_certificate_key /home/admin/conf/web/ssl.domen_name.ru.key;
error_log /var/log/apache2/domains/domen_name.ru.error.log error;
location / {
proxy_pass https://<ip_address>:8443;
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/admin/web/domen_name.ru/public_html;
access_log /var/log/apache2/domains/domen_name.ru.log combined;
access_log /var/log/apache2/domains/domen_name.ru.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
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;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 86400; # neccessary to avoid websocket timeout disconnect
proxy_redirect off;
}
location /error/ {
alias /home/admin/web/domen_name.ru/document_errors/;
}
location @fallback {
proxy_pass https://<ip_address>:8443;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
include /home/admin/conf/web/snginx.domen_name.ru.conf*;
}