Deci, în prezent, am apache cu o trecere proxy care redirecționează toate cererile către o API expresă care rulează folosind modulul nod http, Am instalat și un certificat ssl letsencrypt și totul funcționează bine în această parte. Cu toate acestea, atunci când încerc să deschid o conexiune websocket securizată, se produce erori. Am doar experiența minimă în ceea ce privește configurarea Apache și configurația ssl, așa că vă rog să mă uitați.
Pe serverul meu:
server.ts
import * ca http din „http”;
import * ca Websocket din 'ws';
import * ca expres din „express”;
...
const app = expres();
const server = http.createServer(app);
const wss = nou Websocket.Server({ server, cale: '/ws' });
...
server.listen(3005, () => {
console.log('Serverul a pornit pe portul 3005');
});
Pe browser:
index.js
const ws = new WebSocket('wss://mydomain.tld/ws');
Și fișierul meu de configurare apache pentru domeniu
mydomain.tld.conf
<VirtualHost *:443>
ServerName mydomain.tld
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:3005/ retry=0
ProxyPassReverse / http://127.0.0.1:3005/
RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomain.tld
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Deci, din nou, pentru a rezuma rapid problema, pot crea cereri de succes https securizate ssl, dar nu solicitări de websocket către server. Mulțumesc anticipat.