Proxy Service Setup
In today’s data-driven world, gathering reliable telemetry data about user behavior, content performance, and network conditions is vital for optimizing video experiences. However, domain restrictions (e.g., from ad blockers) and corporate security protocols can sometimes prevent the necessary signals from reaching analytics services such as Conviva.
Setting up a dedicated proxy server is one way to ensure critical telemetry data can still be collected and sent securely. By routing this data through a trusted intermediate domain—one not blocked by filters—organizations can gather uninterrupted insights without compromising security or maintaining multiple, ad hoc workarounds. This proxy server simply relays the telemetry data from your video player sensor to the correct Conviva endpoints, while also giving your IT team control over data flow within the corporate network.
Because the proxy configurations only require standard open-source tools (such as NGINX or Apache) and do not involve specialized or proprietary software, the setup is relatively straightforward. Even simpler, popular cloud solutions like AWS offer built-in features (e.g., application load balancers) that make it easy to incorporate SSL certificates and allow both IPv4 and IPv6 traffic with minimal overhead. With a few DNS changes and some quick server configurations, you can ensure high-quality data collection despite endpoint restrictions—helping you unlock better analytics on viewer engagement, streaming performance, and other valuable metrics.
In the below section, we will provide step-by step instruction on how to set up a proxy service with two popular open source products – Nginx and Apache HTTP Server.
Proxy Service Setup
Setting a proxy service can help manage the critical data flows between video players and the Conviva data gateway, such as sending telemetry data from a Conviva sensor in a video player to an intermediate domain proxy server which relays the data to the Conviva Pulse gateway, bypassing domain restrictions imposed by ad blockers.
Conviva supports common open source NGINX and Apache proxy servers, which can be configured as a middle layer that receives redirected telemetry data from the video player sensor, using a proxy server domain not flagged by ad blockers, (proxy.<customer_domain>), and then forwards the received data to the actual Conviva domain (<customer_key>.cws.conviva.com).
Prerequisites
To getting started with a proxy server setup, make sure you have:
-
Domains used in the proxy service, for example <proxy_domain> as proxy.lpbhs.com
-
ipv4.<proxy_domain> - ipv4.proxy.lpbhs.com
-
ipv6.<proxy_domain> - ipv6.proxy.lphbs.com
-
-
SSL certificate for the proxy domain
Single SAN cert with both proxy_domain (proxy.lpbhs.com) and *.<proxy_domain> (*.proxy.lpbhs.com) should work.
-
Access to create DNS records for the above domains.
-
IPv6 enabled servers/cloud instances.
-
Conviva customer key and endpoints for your c3.
-
Customer_key - xxxxxxxxxxxxxxxxxx
-
Default endpoint - <customer_key>.cws.conviva.com - xxxxxxxxxxxxxxxxxx.cws.conviva.com
-
ipv4 endpoint - <customer_key>.ipv4.cws.conviva.com - xxxxxxxxxxxxxxxxxx.ipv4.cws.conviva.com
-
ipv6 endpoint - <customer_key>.ipv6.cws.conviva.com - xxxxxxxxxxxxxxxxxx.ipv6.cws.conviva.com
-
The below setup uses AWS ALB (Application Load Balancer) with SSL termination at the Load Balancer. To enable SSL on the instances, perform the additional webserver configurations.
NGINX Proxy Server Setup
-
Ensure IPv6 is enabled on your server.
-
Verify your server has an IPv6 address assigned:
ip -6 addr -
Ensure your firewall allows IPv6 traffic (e.g., using ufw, iptables, firewalld or security group).
-
-
Install NGINX using your package manager.
-
CentOS
sudo yum repolist
sudo yum install nginx -
Ubuntu:
sudo apt update
sudo apt install nginx
-
-
Configure the Reverse Proxy
-
Create a new NGINX configuration file:
sudo vi /etc/nginx/sites-available/proxy.conf -
Add the following configuration to forward traffic to the CWS.
Replace <proxy_domain> and <customer_key> with the values selected as Prerequisites.
server {
listen 80;
listen [::]:80;
server_name <proxy_domain>;
location / {
proxy_pass https://<customer_key>.cws.conviva.com/;
}
}
server {
listen 80;
listen [::]:80;
server_name ipv4.<proxy_domain>;
location / {
proxy_pass https://<customer_key>.ipv4.cws.conviva.com/;
}
}
server {
listen 80;
listen [::]:80;
server_name ipv6.<proxy_domain>;
location / {
proxy_pass https://<customer_key>.ipv6.cws.conviva.com/;
}
} -
Enable the configuration.
sudo ln -s /etc/nginx/sites-available/proxy.conf /etc/nginx/sites-enabled/ -
Test and reload NGINX.
sudo nginx -t
sudo systemctl reload nginx
-
Apache Proxy Server Setup
-
Ensure IPv6 is enabled on your server.
-
Verify your server has an IPv6 address assigned.
ip -6 addr -
Ensure your firewall allows IPv6 traffic (e.g., using ufw, iptables, firewalld or security group).
-
-
Install Apache on your server.
-
CentOS
sudo yum repolist
sudo yum install apache2 -
Ubuntu
sudo apt update
sudo apt install apache2
-
-
Enable the required Apache modules.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod ssl
sudo systemctl restart apache2 -
Configure the Reverse Proxy.
-
Create a new virtual host file.
sudo vi /etc/apache2/sites-available/proxy.conf -
Add the following configuration to forward traffic to the CWS.
Replace <proxy_domain> and <customer_key> with the values selected in Prerequisites.
<VirtualHost *:80 [::]:80>
ServerName <proxy_domain>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://<customer_key>.cws.conviva.com/
ProxyPassReverse / https://<customer_key>.cws.conviva.com/
</VirtualHost>
<VirtualHost *:80 [::]:80>
ServerName ipv4.<proxy_domain>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://<customer_key>.ipv4.cws.conviva.com/
ProxyPassReverse / https://<customer_key>.ipv4.cws.conviva.com/
</VirtualHost>
<VirtualHost *:80 [::]:80>
ServerName ipv6.<proxy_domain>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://<customer_key>.ipv6.cws.conviva.com/
ProxyPassReverse / https://<customer_key>.ipv6.cws.conviva.com/
</VirtualHost>
-
-
Enable the configuration and reload Apache.
sudo a2ensite proxy.conf
sudo systemctl reload apache2
Load Balancer
Create a load balancer with IPv4/v6 support.
-
Create a Dual-Stack Load Balancer to support both IPv4 and IPv6.
-
Listen on port 443 and forward to port 80 on backend instances.
-
Configure SSL certificate based on the Prerequisites steps.
-
Take note of the Load Balancer’s DNS record.
DNS Records
Add following DNS records.
-
<proxy_domain> CNAME <Load Balancer DNS>
-
ipv4.<proxy_domain> CNAME <Load Balancer DNS>
-
ipv6.<proxy_domain> CNAME <Load Balancer DNS>