Xibo CMS Proxy Bypass

We currently have Xibo CMS 1.7.0 installed and in production. When we configure the CMS with our proxy settings we can get to external sites just fine. However, we can no longer access our internal sites. When we remove the proxy configuration we can get to our internal sites fine but no longer have access to external sites.

Is there a way to setup the proxy configuration to use a bypass for local addresses?

When you say that - what exactly are you accessing? Not all media types go through the proxy, so I guess they must be RSS related sites?

You could add some exceptions in the code here, but it feels like it could be more easily achieved at the Proxy server end.

By “external sites” I mean anything that is not internal to our network i.e. google.com. If I want to display google.com as a webpage I can as long as the proxy is configured. But then I can no longer access the RSS feeds from our SharePoint sites.

Looks like Curl supports a comma separated list of hosts not to proxy:
http://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html

It would be good to support that in a future release if that were possible @Dan :slight_smile:

1 Like

That sounds exactly what I’m looking for. Would be great to see that in a future build.

OK, i’ve created an enhancement for it.

I would expect proxy bypass to be set at an operating system level, not in the application.
This is somewhat different to authenticed proxy.

Windows and Linux (Centos and RHEL) do this. Have a look at:

I would expect that too actually - unfortunately it may not be achievable for a bunch of different reasons (my experience with people and their proxy servers is that there is more chance of getting a cheese sandwich on the moon that any sort of configuration changes :fork_and_knife:)

It is quite a simple setting to add in the Network section of the CMS settings - so i’ll try and slip it in there.

Really? It’s quite common for apps to have proxy exception fields. Given it’s an option to CURL and Windows appears to have no means to provide it otherwise is it really an issue to support that? It’s optional so it’s not like we’re forcing everyone to go out of their way to support it? On that basis we shouldn’t have a proxy setting field at all - except that that isn’t workable either.

In an ideal world the proxy server in question would be configured to do the sensible thing with the request so that it isn’t blocked at that point, but sadly it’s not an ideal world.

I’d really appreciate that.

Hi Alex

On reflection you have a good point.

I think the original requirement was for the retrieval of an RSS feed, does
that happen in the clients or in the server?
I assume it’s passed into the client as a data source to fetch every time
the content feed is shown.

So – is it the client or the server that needs a local bypass?

andy

The CMS fetches the feed and pre-processes it before passing it to the Player.

The proxy bypass seems to be work great. Thank you for the support!

2 Likes

The only thing I can see that might be causing the issue is the following:

"2015-04-01 11:45:01","Cache","has","5abe5a89aec5a39754c9622921653499 not present"
"2015-04-01 11:45:01","forecastio","getForecastData","Getting Forecast from the API"
"2015-04-01 11:45:01","Forecast\Forecast","request","Calling API with: https://api.forecast.io/forecast/[APIKEY]/43.160858,-85.710039?units=us&lang=en&exclude=flags%2Cminutely%2Chourly"
**"2015-04-01 11:44:48","","","<errormsg>error_log(./err_log.xml): failed to open stream: Permission denied</errormsg>
<errornum>2</errornum>
<errortype>Warning</errortype>
<scriptname>C:\inetpub\wwwroot\xibo\lib\app\debug.class.php</scriptname>
<scriptlinenum>284</scriptlinenum>
"
"2015-04-01 11:44:48","","","<errormsg>error_log(./err_log.xml): failed to open stream: Permission denied</errormsg>
<errornum>2</errornum>
<errortype>Warning</errortype>
<scriptname>C:\inetpub\wwwroot\xibo\lib\app\debug.class.php</scriptname>
<scriptlinenum>285</scriptlinenum>**
"
"2015-04-01 11:44:48","Display","Touch","IN"
"2015-04-01 11:44:48","Nonce","AllowedFile","array (
  'displayId' => '9',
  'layoutId' => '33',
  'regionId' => '551bf8c2bce26',
  'mediaId' => 'b45bbd5db786ca67fbd598432ae8c67b',
)"
"2015-04-01 11:44:48","Layout","GetLayoutXml","IN"
"2015-04-01 11:44:48","Layout","GetLayoutXml","OUT"
"2015-04-01 11:44:48","region","GetMediaNodeType","No link ID. Using mediaid and regionid"
"2015-04-01 11:44:48","","","Module created with MediaID: b45bbd5db786ca67fbd598432ae8c67b LayoutID: 33 and RegionID: 551bf8c2bce26"
"2015-04-01 11:44:48","Layout","GetLayoutXml","IN"
"2015-04-01 11:44:48","Layout","GetLayoutXml","OUT"
"2015-04-01 11:44:48","module","SetMediaInformation","Existing Assigned Media XML is: \n <?xml version="1.0"?>
<root><media id="b45bbd5db786ca67fbd598432ae8c67b" type="forecastio" render="html" duration="10" lkid="" userId="3" schemaVersion="1">

I seem to be getting a permission denied error shortly after I press the Request Forecast button

Can you make sure that your webserver has permission to write to both your Xibo library and all subfolders of that, and to your Xibo installation directory.

We check that at installation but perhaps something has changed since.

err_log.xml is where log messages will go if they can’t be added to the database so there may be extra information in that file once you’ve set appropriate permissions so that it can be created.

Done and implemented in March…

I’ll close this topic now.