Miscellaneous

This page describes less commonly used features in RSAS.

Proxy Server

RSAS can be configured to use an HTTP proxy server for outbound HTTP(S) requests (RFC7230). RSAS makes outbound HTTP requests itself as part of Listener or Source Webhook Authentication and for communication with our licensing server for RSAS Pro. Any configured proxy server will be used for both HTTP and HTTPS requests.

Caveat: Proxy settings are ignored when relaying streams. Our rationale is that in most environments where a proxy server is required, you would be relaying streams originating inside your LAN, and proxy servers are likely to cause headaches with long-lived HTTP connections (relays).

You can configure RSAS to use a proxy server by specifying it in your config file, as per the following example:

<icecast>
...
     <!-- Outbound HTTP proxy to use. Used when RSAS makes HTTP requests. -->
     <http-proxy>
         <host>127.0.0.1</host>
         <port>3128</port>
         <username>foobar</username> <!-- omit if proxy authentication is not required -->
         <password>foobar</password>  <!-- omit if proxy authentication is not required -->
         <no-proxy>host1,host2,127.0.0.1</no-proxy>  <!-- Bypass the proxy for requests with these hosts in their URLs -->
    </http-proxy>
</icecast>

Alternatively, a proxy server can be specified by setting the following environment variables:

HTTP_PROXY="http://proxy.mycorp.com:8080"
NO_PROXY="host1,host2,127.0.0.1"

If proxy authentication is required, credentials can be specified with the following syntax:

HTTP_PROXY="http://user:[email protected]:8080"

To set these environment variables on Linux, please see this StackOverflow post.

The <no-proxy> setting or NO_PROXY environment variable specifies a list of hosts for which the proxy should be bypassed. Requests made to URLs containing hosts in this list will not use the proxy. Requests are screened against this list at the time the URL is parsed, not after DNS resolution.

For IP addresses in the no-proxy list, this has an important consequence that is best illustrated with an example: If NO_PROXY=127.0.0.1 is set, a request to http://localhost would still use proxy because localhost is not in the list. For that request to bypass the proxy, you would need to set NO_PROXY=127.0.0.1,localhost. Keep this in mind!