-
Notifications
You must be signed in to change notification settings - Fork 33
How to make it work behind Apache reverse proxy? #28
Comments
first of all the maybe the removed nginx layer solved the problem already? if not, make sure that apache sets the header Some backgroundthe listen only mode works via kurento, the microphone mode via freeswitch. apparently freeswitch somehow needs to know the clients real IP to start the WebRTC connection, which it doesn't get by the additional apache layer. (the nginx by If the WebRTC connection fails, it falls back to the TURN Server via port 465. Right know I can't understand why it doesn't work. Do you maybe have an mail server running on the same server? In this case the port might be used for SMTP. you can use |
Thank you so much for your answer. Can I install the turn server without running the HTTPS proxy container? I read in the Then, I reinstalled the whole thing without the HTTPS proxy container and set the reverse proxy to point to
I had to set the rewrite rule in order to redirect WebSocket requests to port 7443, otherwise it doesn't work. The browser console shows me a request to the turn server address I specified in the The strange thing is that now the microphone mode works well (I can communicate via the audio channel), but I cannot enable the webcam, since I get the error 1020. This is what the console shows me:
If we can figure out how to make it work properly when there's a webserver already installed, I think it would be nice to add some instructions to the documentation, because one of the major problems of BigBlueButton, in my opinion, is that it requires a "clean" server, so if you want to use it on a server where other web applications or a webserver are already installed, you can only search for some working docker images, and it's hard to find one. This one works well. Thanks again for your support. P.S.: I'm not running a mail server, but when I check what processes are using port 465, two entries are shown: is it correct, or maybe the second entry is about something else using that port?
|
ah yeah, you are right! you can't. the integrated turn server requires certificates created by the https proxy container. So if you want to use a TURN server, you need to install & configure coturn by yourself. In an normal, non-restricted network you everything should work even without the turn server. so maybe first try the installation without turn and add it later as soon as everything else works? Disabling TURN
Is it possible, that it currently still tries your own server with non-working coturn as a STUN server? Regarding port 465: I think the
definitely! so far I was not in the situation to deal with that, especially with apache. But maybe you could share what you have learned in a small guide "How to integrate bbb-docker into an existing apache setup?" :) |
When I understand what are the correct Apache directives to use, I will do it with pleasure. 😊
I agree with you, it's more important to make it work, even without TURN, before thinking about the TURN server, so at the moment I took your advice about disabling TURN in the From what I understand, the reverse proxy requires some specific directives to handle
Now, microphone mode works, but I'm not able to share my webcam and I get some Kurento errors in the browser console. This makes me think that it's necessary to add some Apache directives that redirect For that reason, I ask you: what ports do you think I should deal with? What ports are used by Kurento and WebRTC for |
I managed to make it work. Some correct Apache directives were enough. I'll propose changes to |
sorry, have been busy the last days! following line doesn't make any sense, since it forwards the meteor connection to freeswitch
bigbluebutton uses following websocket paths:
in theory the last one could also get directly redirected, in this case to |
Yes, you were right: that line was completely wrong. Anyway, the new directives I wrote don't forward any single kind of websocket request to a specific port: they only forward them to port 8080. You will see these working directives in the little guide I've added to |
Hi,
I'm interested in your attempt to dockerize BigBlueButton, then I tried to follow the installation guide on this repository, but I'm not an expert so I'd like to ask for some clarification.
Apache is running on my server, so in order to use the HTTPS proxy container I had to modify the file "docker-compose.https.yml" to map ports 80 and 443 in the container to other ports (9010 and 9011) on the host, since 80 and 443 are already used by Apache.
Then I created a virtual server on Apache whose server name was the same of the domain name I specified during the setup of your BigBlueButton dockerized version. For this virtual server I added some reverse proxy directives to map incoming requests to port 443 of the HTTPS proxy container (port 9011 of the host). After many attempts, I managed to make it work thanks to these directives:
I had to use the rewrite rule (last line) because the websocket connection failed when entering a BigBlueButton room without it (so there were no audio nor video).
Now BigBlueButton works (I can connect in listen mode and activate the webcam), except that when I try to enable the microphone I get the error ICE 1007. I checked in the browser console and I found that BigBlueButton tries to connect to the local turn server on port 465 (using the public domain name), but I don't know if it works and I don't even know if the problem is the turn server of something else.
All the docker containers are running properly.
How would you suggest to use this dockerized version when ports 80 and 443 are already occupied by a websever? I would be grateful for your help.
Thank you in advance.
The text was updated successfully, but these errors were encountered: