@sevic

Как настроить wss на apache порт 8080?

Apache сервер работает на портах 80 и 443 конфиги виртуальных хостов:

ServerAdmin admin@localhost
ServerName site.com
ServerAlias www.site.com
DocumentRoot /var/www/site.com/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =site.com [OR]
RewriteCond %{SERVER_NAME} =www.site.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]



ServerAdmin admin@localhost
ServerName site.com
ServerAlias www.site.com
DocumentRoot /var/www/site.com/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/site.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site.com/privkey.pem


На этом же хосте по тому же адресу site.com запущен демон вебсокет на порту 8080.
Подключение к вебсокету по ws://site.com:8080 не проходит, т к все подключения к site.com перенапрвляются на https://site.com
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 2
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
причем тут переадресация, если вы подключаетесь не к апачу?
Ответ написан
@sevic Автор вопроса
Решено.
Нужно было на серевере websocket (node js в данном случае) поднять сервер https, в конфиг сервера добавить путь к файлам с сертификатами и затем уже создавать вебсокет.

const cfg = {
    port: 8080,
    ssl_cert: '/etc/letsencrypt/live/site.com/fullchain.pem',
    ssl_key: '/etc/letsencrypt/live/site.com/privkey.pem'
};

const processRequest = (req, res) => {
    res.writeHead(200);
    res.end("Отлично, мои веб-сокеты! \ N");
};

const app = https.createServer({
    //  Передача параметров ключа и сертификата на сервер
    key: fs.readFileSync(cfg.ssl_key),
    cert: fs.readFileSync(cfg.ssl_cert)
}, processRequest).listen(cfg.port);

const wss = new WebSocket({ server: app });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы