Jed - thank you for the information. You've shared what you know and are 
clear where your knowledge ends, and that's all too rare.

All - I'm going to continue to try and work out here how to make this work, 
since I can't believe I'm the only person on the planet who wants to access 
TW-Bob from the Internet via an Apache front-end.  Maybe I'll get a pointer 
from someone.  If not, then at least there's a record for the next guy (if 
I succeed).  I need to stick with Apache because I have one IP address and 
I have a bunch of Apache-driven sites using subdomains and vhosts, and I 
want to add Bob to that mix.

I server the wiki on https://my.domain.com/ (from "/"). I put Fiddler on 
it.  (I'm on a Mac. Fiddler-Mac exists but it's lame compared with real 
Fiddler.)  I see the request:

GET https://my.domain.com/ HTTP/1.1
Upgrade: websocket
Connection: Upgrade

and the response should include:

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade

but the actual response is is simply a status 200 with a re-download of the 
full TW web page.  Clearly, the request to create the WebSocket isn't 
recognized somewhere on the end-to-end path.

The trace is with HTTPS authentication turned off on my.domain.com, so I'm 
not dealing with an authentication problem.

My apache config for this host looks like:
<VirtualHost *:443>
    ServerName my.domain.com
    ProxyRequests Off
    ProxyPreserveHost on
    ProxyPass "/"  "http://127.0.0.1:8088/";
    ProxyPassReverse "/"  "http://127.0.0.1:8088/";
    Include certificate-stuff.conf
    AllowEncodedSlashes On
    SSLEngine On
    SSLProxyEngine On
    ###### Adding WebSockets ######
*    ProxyPass "/" "ws://127.0.0.1:8088/"*
*    ProxyPassReverse  "/" "ws://127.0.0.1:8088/"*
    ###### Finished WebSockets #######
</VirtualHost>

/etc/apache2/mods-enabled/proxy_wstunnel.load contains a LoadModule for 
proxy_wstunnel_module, so I should be set up to proxy websockets.  I think 
the problem is happening BEFORE that point, because the REQUEST to engage 
websockets is getting missed.

WebSockets *can* work on this host, because I have another site 
successfully using them via:
      ProxyPassMatch (.*)(\/websocket)$ "ws://localhost:81/$1$2"
      ProxyPass / "http://localhost:81/";
      ProxyPassReverse / "http://localhost:81/";

I observe that the successful site has Apache proxying both http and ws on 
the same port, so Bob ought to be able to work with 1 port for both 
protocols. I do see that the successful site has a way to distinguish 
between http and ws traffic -- their site puts 'websocket' in its WebSocket 
URLs, but as I said earlier, Bob's *request* to go to ws is getting 
ignored, not ws traffic itself.

I'm a little worried about these two directives conflicting:
    ProxyPass "/"  "http://127.0.0.1:8088/";
    ProxyPass "/" "ws://127.0.0.1:8088/"

I don't know enough to be sure, but I don't see a way for Apache to 
distinguish whether "/" should be proxied as http or https.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/87b0ae2f-9987-4760-9384-0650649ed11b%40googlegroups.com.

Reply via email to