В итоге поступил следующим образом - когда менеджер заходит в веб-интерфейс и включает CDN для какого-то из дистрибутивов, в некоторый каталог (например, /cdnenabled) записывается пустой файл по маске product-name.trig. Нгинкс проверяет существование этого файла, и если он существует, то при запросе дистрибутива пользователь перенаправляется на CDN. Иначе - нгинкс отдает его сам.
Пример конфига нгинкс-а:
...
server {
listen 80;
location ~^/en/(.*)/(.*)-setup.exe$ {
set $product $1;
set $setup_part $2;
if (-f /home/www/example.com/public_html/cdnenabled/$product.trig) {
rewrite ^ http://cdnserver.com/en/$product/$product-setup.exe; #редирект на CDN в случае существования файла
}
#Отдать дистрибутив или показать 404.
try_files /home/www/example.com/public_html/en/$product/$product-setup.exe /home/www/example.com/public_html/404.html;
}
}
...