proxy - proxying relative urls with nginx -


my question similar nginx relative url absolute rewrite rule? - added twist.

i have nginx acting proxy server, proxies multiple apps, similar (simplified) config:

server {   listen 80;   server_name example.com;    location /app1 {     proxy_pass   http://app1.com;   }   location /app2 {     proxy_pass http://app2.com;   } } 

this works fine, in other question, these applications (app1 , app2) use relative urls such /css/foo.css, or /js/bar.js. it's big problem ask applications change /app1/css/foo.css.

is possible nginx intelligently figure out application should handle request? ftr, users accessing these applications this:

http://example.com/app1/fooaction or http://example.com/app2/baraction.

if matters, applications java/tomcat based apps.

tia!

based on updated comments; if upstream backend sends referer header, this:

location ~* ^/(css|js)/.+\.(css|js)$ {                     #checking if referer app1                     if ($http_referer ~ "^.*/app1"){             return 417;         }              #checking if referer app2         if ($http_referer ~ "^.*/app2"){             return 418;         }         }     error_page   417  /app1$request_uri;     error_page   418  /app2$request_uri;       location /app1 {                  proxy_pass  http://app1.com;     }      location /app2 {         proxy_pass http://app2.com;     } 

for example, if backend on app2.com, requests test.css this:

curl 'http://example.com/css/test.css' -h 'referer: http://app2.com/app2/some/api' 

the request land here:

/app2/css/test.css  

Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -