Ответы пользователя по тегу Nginx
  • Как реализовать динамическое управление редиректом?

    @werdender Автор вопроса
    В итоге поступил следующим образом - когда менеджер заходит в веб-интерфейс и включает 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;
    	}
    }
    
    ...
    Ответ написан
    Комментировать