Welcome! Log In Create A New Profile

Advanced

Dynamic Upstream

April 28, 2017 08:05AM
Pupose: Need to create a local proxy to an image cdn (Beats the purpose of having a CDN, but can't help!!)

Setup: I have a cdn setup with multiple endpoints say t1.mycdn.com, t2.mycdn.com and t3.mycdn.com. I have a website (foobar.com) which uses images from these cdns. Because of some requirement, I need to have localized path to images (say https://foobar.com/images/sellers/s1/22.jpg). I need to proxy pass it to my 3 cdn endpoints with equal weight. Along the way, I need to change the URL too, https://foobar.com/images/sellers/s1/22.jpg will be fetched from t1.mycdn.com/img/slr/s1/22.jpg OR t2.mycdn.com/img/slr/s1/22.jpg OR t3.mycdn.com/img/slr/s1/22.jpg with equal probability.

I have compiled nginx with the following config
configure arguments: --prefix=/opt/nginx --pid-path=/home/ec2-user/pids/nginx.pid --user=ec2-user --group=ec2-user --without-http_autoindex_module --without-http_geo_module --without-http_memcached_module --without-http_scgi_module --without-http_uwsgi_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_geoip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_secure_link_module --without-mail_pop3_module --with-http_v2_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --add-module=/tmp/ngx_devel_kit-0.3.0 --add-module=/tmp/lua-nginx-module-0.10.7 --add-module=/tmp/echo-nginx-module-0.60 --add-module=/tmp/set-misc-nginx-module-0.31 --add-module=/tmp/headers-more-nginx-module-0.32 --with-ld-opt=-Wl,-rpath,/opt/luajit/lib

Current Approach: I have the following block
location ~* ^/images/sellers/[^/]+/[^/]+$ {
error_log /tmp/images.log debug;
set $img_host "";
set $img_url "";
rewrite_by_lua '
math.randomseed(os.time())
ngx.var.img_host = "t"..math.random(1,3)..".mycdn.com"
ngx.var.img_url = string.gsub(ngx.var.uri, "/images/sellers", "/img/slr/")
';
proxy_set_header HOST $img_host;
proxy_pass https://$img_host$img_url;
}

When I try to fetch the image, I keep getting the following error

invalid URL prefix in "https://"

I tried changing https to http too. Doesn't help. Can you please let me know where am I going wrong here ?

Thanks,
Bhargava
Subject Author Posted

Dynamic Upstream

bhargava April 28, 2017 08:05AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 104
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready