2016-06-30 5 views
1

Ich erstelle eine nginx reverse proxy zu Apache. Apache läuft auf Port 8080 und nginx auf 80.Serving a.html von Apache während der Anfrage b.html

Ich hoffe, das folgende zu erreichen;

Wenn ich fordern Sie die Seite http://server/test.html es sollte http://server:8080/unknown.html

Später ich proxyed werde auf den Seiten etwas eval Dinge tun und die Nutzer auf die richtigen Seiten umleiten, aber ich kann dies nicht einmal bekommen Arbeit. Ich bekomme die test.html zurück als Antwort die ganze Zeit.

Meine nginx config:

server { 
     listen 80; 

     root /var/www/; 
     index index.php index.html index.htm; 

     server_name example.com; 

     location/{ 
       # try_files $uri $uri/ /index.php; 
     } 

     location ~ \.html$ { 

       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $remote_addr; 
       proxy_set_header Host $host; 

       #rewrite ^/unknown.html; 
       proxy_pass http://127.0.0.1:8080; 
       proxy_redirect http://127.0.0.1/test.html http://127.0.0.1:8080/unknown.html; 
     } 

     location ~ /\.ht { 
       deny all; 
     } 
} 

Ich habe null Erfahrung noch nicht, aber ich bin gespannt zu erfahren, wie diese Arbeit zu bekommen ...

Antwort

1

Erstens die proxy_redirect Richtlinie ist das Gegenteil von dem, was du brauchst. Es wird nur verwendet, um die Antwortheader Location in 3xx Antworten von Upstream neu zu schreiben. Einzelheiten finden Sie unter this document.

können Sie eine rewrite ... break Anweisung innerhalb der Lage Block verwenden, der die proxy_pass, zum Beispiel durch:

location ... { 
    rewrite ^/test.html$ /unknown.html break; 
    proxy_pass ...; 
} 

this document für Details.

Verwandte Themen