2016-10-06 4 views
0

Ich habe einige Probleme mit einer Seite, die über einen Nginx-Proxy läuft. Diese Seite ruft andere interne Server auf und ich möchte diese URLs mit nginx neu schreiben.Nginx URL auf der Proxy-Seite neu schreiben

Ich habe bereits ein Proxy-Pass für die folgenden ausgeführt wird:

foo.site.internal -> foo.site.nl (öffentlich) Die Website interne fordert für einige andere Dienste wie: foo2. site.internal: 1400/json/api/call/bla

Gegenwärtig versucht foo.site.nl, diese Aufrufe von einigen Javescript-Verwendung zu erhalten. Aber dies ist nicht möglich, weil der Endbenutzer kann nicht foo2.site.internal verbinden

So habe ich erstellt eine Reverse-Proxy für: foo2.site.internal: 1400, die an laufen: foo.site.nl : 1400, also was ich erreichen möchte, ohne die Konfiguration der Backend-Site zu ändern, ist dies:

umschreiben foo2.site.internal: 1400/json/api/call/bla in Seite zu foo.site.nl: 1400/json/api/call/bla

Könnte so etwas mit nginx möglich sein?

Mein aktueller config:

server { 
    listen 443 ssl; 
    ssl_certificate /etc/nginx/ssl/site.nl.cert; 
    ssl_certificate_key /etc/nginx/ssl/site.nl.key; 

    server_name foo.site.nl; 

    location/{ 
    proxy_intercept_errors on; 
    proxy_set_header X-Forwarded-Host $host; 
    proxy_set_header X-Forwarded-Server $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://foo.site.internal/; 
    } 
} 

server { 
    listen  14000 default_server; 
    server_name foo.site.nl; 
    location/{ 
    proxy_pass  http://foo2.site.internal:14000; 
    proxy_set_header Host foo2.site.internal:14000; 
    } 
} 

Antwort

0

Sie diese Konfiguration verwenden können:

server { 
    listen 443 ssl; 
    ssl_certificate /etc/nginx/ssl/site.nl.cert; 
    ssl_certificate_key /etc/nginx/ssl/site.nl.key; 

    server_name foo.site.nl; 

    location/{ 
    proxy_intercept_errors on; 
    proxy_set_header X-Forwarded-Host $host; 
    proxy_set_header X-Forwarded-Server $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://foo.site.internal/; 
    } 
} 

server { 
    listen  14000 default_server; 
    server_name foo.site.nl; 
    location/{ 
    try_files $uri $uri/ /index.php?$args; 
    proxy_pass  http://foo2.site.internal:14000; 
    proxy_set_header Host foo2.site.internal:14000; 
    } 
} 
+0

Es scheint nicht zu funktionieren: https://s21.postimg.org/hr9v8m5fb/imagekopie.png Ich möchte die URL im Inhalt der Webseite neu schreiben. Und der https-Fehler wird gelöst, wenn die URLs der Seite in intra-intern.domain.nl (öffentliche Seite) umgeschrieben werden – Mitchel