Everything but ood server's reverse proxying working for remote desktop

I have been fighting to install OOD and get a working remote desktop for weeks (while the instructions for setting up OOD itself are detailed and accurate, those for setting up remote desktop seem to be a nearly nonexistent afterthought). We’ve reached the point at which I can login, fire a desktop off on a cluster node, and it successfully starts the VNC desktop session.

I can even use ssh to proxy the node’s VNC server listening port back to my desktop and open a desktop VNC viewer.

However the ‘open viewer’ option in the browsers fails instantly. The only clue I have been able to find is in the OOD server logs,

=> httpd/access_ssl.log <==
xxx.xxx.xxx.xxx - - [08/Jul/2022:16:45:16 -0700] “GET /rnode/axis1/44232/websockify HTTP/1.1” 404 196 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0”

Other than this one line, I haven’t found anything to go on, and that’s not enough for me to even begin to guess more than the obvious (something is not installed and/or not configured) and that it may be websockify. Has anyone encountered this? Or setup a fully working remote browser-vnc desktop?

Hi and welcome!

Yes we’re trying to revamp our documentation. I believe this is the bit that’s relevant to you

https://osc.github.io/ood-documentation/latest/app-development/interactive/setup/enable-reverse-proxy.html#steps-to-enable-in-apache

These 3 settings. Be sure uri settings are enabled and the host_regex matches what your hosts (axis1) look like.

host_regex: '[\w.-]+\.my_center\.edu'
node_uri: '/node'
rnode_uri: '/rnode'

Also - it looks like that’s not a FQDN - axis1 or it’s missing bits of your domain, so you may need the set_host configurations also described in that page.

I’ve followed through the proxy setup commands, and using Netcat I’ve demonstrated to myself a working proxy (ood.nic.uo/node/5555 forwards my browser request to a listening nc) and reverse proxy (/rnode/XXX causes a waiting “echo ‘hello world’ | nc -l 5555” to emit “hello world” back in my browser).

So the proxy setup works (yay) but still the browser noVNC just cries “failed to connect” (boo). I feel like Zeno… it’s so close to working it hurts.

Here are some additional questions.

  • Can you confirm when you use a browser that you still get these 404s?
  • Are you using a proxy, like a load balancer in front of OOD?
  • I just want to confirm when you did an NC test you used axis1 like the jobs do. Not the FQDN with a domain, just the hostname as is as you would see it in a url that OOD would generate.

I just checked and it is the host name that is the problem.

I opened the noVNC advanced settings and edited the host target from ‘axis1’ to ‘axis1.stor’ and it worked.

However I have

  • entered set_host (why not use hostname -f?), rerun the configuration generator and restarted httpd
  • put .stor first on the /etc/resolv.conf domain search list and restarted httpd
  • put “172.17.10.1 axis1.stor” into /etc/hosts and restarted httpd
    And none of them have any effect, the host is flat ‘axis1’ which does not work.

Ultimately following

I directly edited set_host into
/var/www/ood/apps/sys/bc_desktop/submit.yml.erb
and restarted and it works: I am able to launch a remote session and get a gnome desktop appear in my browser. Horray! There’s some other things that need to be worked out but it looks like it’s alive.

Glad to see you got it!

Make the changes here instead. The file above will be overwritten when you update.

/etc/ood/config/apps/bc_desktop/submit.yml.erb