proxy only certain assets based on host header?

Maxim Dounin mdounin at mdounin.ru
Fri May 24 13:07:51 UTC 2013


Hello!

On Thu, May 23, 2013 at 09:07:21PM -0400, amagad wrote:

> We're trying to proxy only certain assets like png|jpg|css only when the
> host header is a certain DNS name. I tried to do this in the proxy.conf file
> using something the example below but it doesnt like the if statement. Is
> there a way to have nginx do what I am looking for?
> 
> 
> if ($http_host = dnsname.com) {
>   location ~ ^/(stylesheets|images|javascripts|tools|flash|components)/ {
>     proxy_pass http://assethost
>   }
> }

Yes, sure.  Use separate server{} block for a domain name you want 
to be handled specially, e.g.:

     server {
         server_name foo.example.com;

         location / {
             # just serve anything as static
         }
     }

     server {
         server_name bar.example.com;

         location / {
             # server anything as static...
         }

         location /images/ {
             # ... but proxy images to a backend
             proxy_pass http://backend;
         }
     }

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list