Error when running Xibo on different port


#1

Hello Everybody,

I want to place a HTTPS proxy in front of Xibo. Therefore I’ve changed the port on which Xibo listens to 8080 in the docker YML file. (Set ports: to “8080:80”)
This change causes certain datatables to become unpopulated. For example: The Design -> Layouts table becomes empty.
Meanwhile in the Javascript console I see the following error:
xibo-cms.js?1.8.11:365 Uncaught TypeError: $(…).selectpicker is not a function
at XiboInitialise (xibo-cms.js?1.8.11:365)
at HTMLDocument. (xibo-cms.js?1.8.11:64)
at j (jquery-1.11.1.min.js?1.8.11:2)
at Object.fireWith [as resolveWith] (jquery-1.11.1.min.js?1.8.11:2)
at Function.ready (jquery-1.11.1.min.js?1.8.11:2)
at HTMLDocument.J (jquery-1.11.1.min.js?1.8.11:2)

And the ajax request that gets the data (call to /layout?..) doesn’t get executed.
I’m running Xibo 1.8.11 in a Docker container on CentOS. The error occurs both on Firefox and Chrome.

Does anyone have suggestions for solving this?

Best regards,

Stijn


#2

Hello all there,

I’m sorry for bumping my topic, but I’d like to bring a little more attention to my issue… Is there anyone who can help? Do you require more information from my end?

Best regards


#3

I expect you’re not passing the host header through your reverse proxy to the CMS.

How have you configured the reverse proxy?


#4

Hi Alex,

Thanks for your reply. I’m using httpd (apache) as the proxy in front of Xibo. This is the virtualhost config for Xibo:
<VirtualHost :80>
ServerAdmin IT@mydomain.com
ServerName xibo.mydomain.com
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.
) https://%{HTTP_HOST}%{REQUEST_URI}
# ProxyPreserveHost On
# ProxyPass / http://127.0.0.1:8080/
# ProxyPassReverse / http://127.0.0.1:8080/

<VirtualHost *:443>
        ServerAdmin IT@mydomain.com
        ServerName xibo.mydomain.com
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPreserveHost on
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
        AllowEncodedSlashes NoDecode
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Host "xibo.mydomain.com"
</VirtualHost>

The first VirtualHost on port 80 redirects the request to https. The funny thing is that it appears to be working “sometimes”. Just now I’ve got it working on my computer in Firefox, but not in Chrome.


#5

You’re better not redirecting HTTP to HTTPS in the webserver if you can avoid it. The CMS is capable of doing that when needed (there are times when it’s desirable for the Player to make non-sensitive requests over HTTP - for example when syncing the time). You just need to tick Force HTTPS in the CMS settings once SSL is up and working.

I don’t know what some of the directives you have in there do. The example Apache reverse proxy config I posted in the guide works, so I would start with that.


#6

Hi Alex,

Thanks for your reply.
I’ve changed the proxy setup as described in your post, and checked the Force HTTPS tickbox. Until now everything seems to be working smooth.