SSL Termination, certificates and proxy name

We created a Database of Interactive Apps with Bokeh:

https://github.com/ChairOfStructuralMechanicsTUM/Mechanics_Apps

Until end of September they were reachable via our website.
The links in our website were redirected to the proxy names (later called id) and ports (5006, 5010, 5020) were the apps were reachable.

The id was different than the the actual name of the virtual machine (a Windows Server 2012 R2), were the processes are running, and it served as a proxy name.

The processes were running with the command:

Start-Process bokeh -ArgumentList "serve $apps --port $port --allow-websocket-origin=${ip}:${port}" -NoNewWindow

Where $apps = Get-Content -Path appnames.conf is the list with the main files of each app and ports and ip were defined before. The ip is defined so that the final links that were called were http://apps.bm.ed.tum.de:5006/nameoftheapp

In September 2022, the links in our webpage were automatically turning http into https, but we did not had any certificate installed and therefore the apps were not shown. We generated the certificate with Certbot for the domain apps.bm.ed.tum.de and changed the command into:

Start-Process bokeh -ArgumentList "serve $apps --port $port --allow-websocket-origin=${ip}:${port} --ssl-certfile C:\Mechanics_Apps\cert.pem --ssl-keyfile C:\Mechanics_Apps\privkey.pem" -NoNewWindow

This worked fine for few weeks in October 2022. Suddenly, since few day, we are not able to run the apps and we get the PR_END_OF_FILE_ERROR:
image

If I directly call the actual machine name, I do not get the error anylonger and the list of the active apps can be seen, but because the --allow-websocket-origin command does not mention that name, I get an error in Bokeh. But at list I can call the get reach the processes.

What it puzzles me, is why suddenly we get the error even if nothing was changed in our system. And why the all thing worked for few weeks and then the error appeared.

Do you any idea how to solve it? I guess it has to do with the proxy name and some setting that we have to add.

Thank you and best regards,
Francesca

Hi @FrancescaTaddei a quick search seems to indicate that PR_END_OF_FILE_ERROR is specific to Firefox. Can you confirm you are seeing this error on only Firefox? If so, can you check what happens with other browsers?

There are lots of places where a connection failure could happen, you will need to examine several various logs to look for clues:

  • Browser JS console logs
  • Bokeh server console logs
  • Web proxy logs
  • System logs

Lastly, I am afraid I don’t speak any German. Please if you do see any errors or log messages that seem relevant, either:

  • Provide an English translation yourself in your posts, or
  • Post actual text rather than an image so, that I can use Google translate

Dear Bryan,
thank you for your reply.
I am not familiar with Browser or Webproxy logs.

In the Bokeh console nothing peculiar happens, because the processes are not even reached. Hier is the console, running and doing what it should:

Finally, now the error I get in most of the Browsers is the following:

The connection has timed out

An error occurred during a connection to apps.bm.ed.tum.de.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer’s network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

So it turned into a time out error.

A page example can be called at:
https://apps.bm.ed.tum.de:5006/Couple_moment

Maybe you can test it and see the error you get?

Thank you.
Best,
Francesca

@FrancescaTaddei That is pretty conclusive that the problem lies with a proxy or firewall that is in front of the Bokeh server, and is blocking traffic to it. Unfortunately, without knowing much more about your local network setup and configuration, I can’t do much more beyond pointing to our docs for some common proxy setups:

Running a Bokeh server — Bokeh 2.4.3 Documentation

I think you will have to talk to your local network admin to try and discover what is blocking requests from reaching the Bokeh server.