Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Websocket SSL non funzionano

    Utilizzo ratchet (php) per i websockets:
    Codice PHP:
    <?php
    //[...] class Chat
    $server IoServer::factory(
        new 
    HttpServer(
            new 
    WsServer(
                new 
    Chat()
            )
        ),
        
    8888
    );
    $server->run();
    Ho abilitato mod_proxy.so e mod_proxy_wstunnel.so:
    codice:
    root@ubuntu:~# a2enmod proxy_http 
    root@ubuntu:~# sudo a2enmod proxy_wstunnel 
    root@ubuntu:~# sudo service apache2 restart

    Dopodichè ho modificato /etc/apache2/sites-available/000-default-le-ssl.conf aggiungendo questa riga:
    codice:
    <IfModule mod_ssl.c>
    <VirtualHost *:443>
            ProxyPass /wss2/ ws://miosito.org:8888/
            ...
    Aggiornato la configuazione:
    codice:
    sudo a2ensite default-ssl.conf
    sudo service apache2 restart
    Startato il server:
    php bin/server.php

    Ma ottengo questo errore quando mi collego alla pagina da client:
    codice HTML:
    [... resto pagina ...]
    <script>
    const ws = new WebSocket('wss://miosito.org/wss2/?1b70ee9e56888665cfbde77ec832de8a');
    Errore:
    codice:
    Firefox can’t establish a connection to the server at wss://miosito.org/wss2/?123.

    Environment:

    • ubuntu-20.04
    • apache2.4
    • php-8.1
    • Digitalocean



    -------------------------------

    Ho risolto, non so come, ma credo inserendo questa riga oltre a proxypass:

    codice:
    ProxyPass /wss2/ ws://miosito.org:8888/
    ProxyPassReverse /wss2/ ws://miosito.org:8888/
    Ultima modifica di zacca94; 04-09-2022 a 09:12

  2. #2
    Sì....
    In pratica il ProxyPass dice che se arriva al server A una richiesta per wss2 la deve girare al server B (ws:miosito ecc). Il server B elabora il tutto MA se sul server B c'è qualche percorso assoluto si creano casini perchè la risposta che ti darà A sarà relativa ad A e non a B

    Dal manuale Apache
    For example, suppose the local server has address http://example.com/; then


    ProxyPass "/mirror/foo/" "http://backend.example.com/"
    ProxyPassReverse "/mirror/foo/" "http://backend.example.com/"
    ProxyPassReverseCookieDomain "backend.example.com" "public.example.com"
    ProxyPassReverseCookiePath "/" "/mirror/foo/"


    will not only cause a local request for the http://example.com/mirror/foo/bar to be internally converted into a proxy request to http://backend.example.com/bar (the functionality which ProxyPass provides here). It also takes care of redirects which the server backend.example.com sends when redirecting http://backend.example.com/bar to http://backend.example.com/quux . Apache httpd adjusts this to http://example.com/mirror/foo/quux before forwarding the HTTP redirect response to the client. Note that the hostname used for constructing the URL is chosen in respect to the setting of the UseCanonicalName directive.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.