2016-05-27 6 views
0

Inginx proxy_pass Routen zu falschen Backend-Standort

nginx version: nginx/1.4.6 (Ubuntu) 

leite Was ich versuche zu erreichen ist;

  1. Anfrage ist von http://my.frontend.com/goto/mytoken
  2. Ich mag es von http://my.backend.com:5202/goto/mytoken
  3. Einschränkung behandelt werden soll, dass nur/goto/Verkehr zu Backend weitergeleitet werden, ohne/goto/in URL-Frontend, sollte es 404 Rückkehr sein dh auch http://my.frontend.com

goto ist statisch, mytoken ist für jede Anforderung (das zu Backend bezeichnet wird).

Meine Serverdefinition für dieses Szenario ist;

server { 
listen 80; 
server_name my.frontend.com; 

location ~* ^/goto/(.*) { 
    proxy_pass http://my.backend.com:5202/$uri$1$is_args$args; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 
} 

Aber das Problem ist; obwohl laut access.log meiner URI/goto/mytoken scheint ok zu konstruierenden, aber Backend liefert 404

xxxx - - [27/Mai/2016: 13: 01: 56 +0000] „GET/goto/7328372837182382938 HTTP/1.1" 404 69 "http://mywebsite.com/index.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537,36 (KHTML, wie Gecko) Chrom/50.0.2661.102 Safari/537,36"

Same Das Szenario funktioniert gut, wenn ich unten zB keine/goto/in-Position habe.

server { 
listen 80; 
server_name my.frontend.com; 

location/{ 
    proxy_pass http://my.backend.com:5202; 
    ... 
} 
} 

Wirklich schätzen einen Hinweis hier.

Antwort

0

Sie scheinen eine große Anzahl von Variablen an die proxy_pass Direktive anzuhängen, und ich denke, dass keiner von ihnen notwendig ist. Sie sollten beginnen mit:

location /goto/ { 
    proxy_pass http://my.backend.com:5202; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 

Welche transparent jede URI übergeben wird, die mit /goto/ beginnt.

Weitere Informationen finden Sie unter this und this.

+0

wenn ich oben versuchen, 2016/05/27 14:36:53 [Fehler] 7035 # 0: * 12 open() "/ usr/share/nginx/html/app/Kibana" nicht bestanden (2 : Keine solche Datei oder Verzeichnis), Client: 192.176.1.83, Server: my.website.com, Anfrage: "GET/app/kibana HTTP/1.1", Host: "my.frontend.com", Referrer: "http: //mywebsite.com/src/index.html " – hammad

+0

und wenn ich proxy_pass http://my.backend.com:5202/ am Ende (Anmerkung '/'), es endet in der gleichen Situation wie oben origina Problem . [/ app/kibana im obigen Kommentar ist meine deflure Landing Page im Backend] – hammad

Verwandte Themen