Hi All,

Just to follow up on this and for the benefit of others having the same
issue, I have now successfully worked around the problem.

Printing does not work (for me, at least) when using guacamole via an
Apache reverse proxy *in HTTP mode*. I am not sure if this counts as a bug
- since everything else i.e. normal interactive use of guacamole
RDP/VNC/SSH/etc. sessions work fine in this configuration - but here are
the two steps I took to resolve:

- Install Apache's mod_proxy_wstunnel (on Debian this is 'sudo a2enmod
proxy_wstunnel')
- Add a line in Apache's config to websocket-proxy the relevant URL. Note
that this line must come *before* the config entry that proxies the rest of
guacamole, since Apache's ProxyPass command operates on a first match wins
basis.

(I did look at Chapter 4 of the documentation, and in particular the
'Proxying with websocket' section, but I found I did not need the
ProxyPassReverse statement shown there; nor did I need to place it within a
<Location> section, in my config at least.)

My Apache config now looks like this:

        ProxyPass /remoteaccess/websocket-tunnel
ws://docker.host:5678/guacamole/websocket-tunnel

        ProxyPass /remoteaccess/
http://docker.host:5678/guacamole/

and printing now works perfectly.

Mike/team - is this a bug? (Printing works via websocket but not via http)
and if so, is there a bug tracker I should report this to? Happy to do some
more digging/testing, if this isn't reproducible elsewhere.

Thanks - and season's greetings to all!

Cheers,

Jonathan

On 22 December 2017 at 08:05, Jonathan Hunter <jmhunt...@gmail.com> wrote:

> Thanks Mike, that helps!
>
> I do indeed have ghostscript installed, and the /usr/bin/gs binary does
> exist, in the guacd image, which is great.
>
> I've just tried it again (printed a simple Notepad document saying
> 'hello'). It seems to take a long time to think about whatever it is doing,
> since the web browser window does indicate at the bottom that something is
> happening, but then gives up / times out.
>
> What actually happens after I press 'Print' on the Windows machine (I am
> connecting to it via RDP) is that guacd says:
>
> guacd[949]: INFO:       Print job created
>
> guacd[949]: INFO:       Created PDF filter process PID=958
>
> guacd[958]: INFO:       Running gs
> and the web browser I am using (Chrome on Mac) flashes up "Waiting for
> www.myurl.com" at the bottom of the browser window a few times - but then
> nothing else happens. No further log items come up. (I am using 'docker
> logs -f guacd' to view these)
>
> Are there any built-in hooks to turn up debugging levels etc. in guacd
> when using it via docker, or should I do my normal mechanism of running
> /bin/sh in the docker container and running strace -f ?
>
> I wonder if it might be related to my use of Apache as a reverse proxy in
> front of the docker container; but that works fine for normal interactive
> use of guacamole, I've not had a problem yet. The Apache config is pretty
> much just:
>
>         ProxyPass /remoteaccess/        http://docker.host:5678/guacamole/
> but perhaps this interfers with printing somehow.
>
> Update - I have tried connecting direct to the docker image (I needed to
> find a plugin for Chrome to set the REMOTE_USER header as I am using HTTP
> authentication on my reverse proxy) and printing *does* work perfectly this
> way. So, it is not guacd, but rather something to do with my use of Apache
> as a reverse proxy.
>
> Going direct instead of via Apache, I get the following in guacd logs:
>
> guacd[993]: INFO:       Print job created
>
> guacd[993]: INFO:       Created PDF filter process PID=1002
>
> guacd[1002]: INFO:      Running gs
>
> guacd[993]: INFO:       Print job closed
>
> guacd[993]: INFO:       Ignoring printer cached configuration data
>
> Any pointers appreciated..
>
> Many thanks :)
>
> Jonathan
>
> On 21 December 2017 at 01:31, Mike Jumper <mike.jum...@guac-dev.org>
> wrote:
>
>> On Dec 20, 2017 17:26, "Jonathan Hunter" <jmhunt...@gmail.com> wrote:
>>
>> ...
>>
>> The following command returns nothing for me:
>>
>> # docker exec -it guacamole find / -type f -name gs
>>
>> Am I barking up the wrong tree here?
>>
>>
>> Yep. You need to bark up the guacd tree instead. ;)
>>
>> It's not the guacamole image which needs GhostScript, but the guacd
>> image. It should be there, though. It's installed as part of the image
>> build:
>>
>> https://github.com/apache/guacamole-server/blob/f72de10328ae
>> 39fcbf067333b0c2a2c9aecc441b/Dockerfile#L36
>>
>> - Mike
>>
>>
>
>
> --
> "If we knew what it was we were doing, it would not be called research,
> would it?"
>       - Albert Einstein
>



-- 
"If we knew what it was we were doing, it would not be called research,
would it?"
      - Albert Einstein

Reply via email to