2017-01-16 2 views
0

Ich versuche Proxy_pass mit Nginx zu verwenden, um Weiterleitungen zu meinem Image CDN zu maskieren. Ich möchte auf einen Pfad wie gehen können:mit Proxy_pass mit dynamischen Variablen nginx

myserver.com/images/12345/whatever-name-goes-here.jpg

ich

dass Proxy möchte

http://imagecdn.com/12345.jpg

ich habe versucht, die folgende

location ~ /images/(.*)/(.*) { 
     proxy_pass http://imagecdn.com/$1.jpg; 
    } 

Aber ich bekomme immer 502 Fehler. Irgendeine Idee, wenn das überhaupt möglich ist?

Antwort

1

würde ich vorschlagen, eine tatsächliche Weiterleitung verwenden, wie zum Beispiel:

location ~ ^/images/(.*)/(.*)$ { 
    return 301 $scheme://imagecdn.com/$1.jpg; 
} 
+0

ich es auf die anderen URL lösen nicht will – jdkealy

+1

Ich glaube, ich das Problem sehen, können Sie nicht proxy_pass auf diese Weise verwenden Wenn es sich bei der Position um eine Regex handelt, sehen Sie in der Dokumentation nach [proxy_pass] (http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass) und scrollen Sie nach unten zu "In einigen Fällen". Sie müssen eine Rewrite-Regel verwenden: 'location/images {rewrite ^/images /(.*)/(.*)$ $ 1.jpg break; proxy_pass http://imagecdn.com;} ' –

+0

Dies ist die Antwort, nach der ich gesucht habe – jdkealy

Verwandte Themen