2016-06-30 50 views
1

我正在爲apache創建一個nginx reverse proxy。 Apache運行在端口8080和nginx上80在請求b.html時從apache提供a.html

我希望能夠做到以下幾點;

當我請求的頁面http://server/test.html應該proxyed到http://server:8080/unknown.html

對我以後會做的網頁上有一些eval的東西,用戶重定向到正確的頁面,但我甚至無法獲得此工作。我一直在迴應test.html

nginx配置:

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; 
     } 
} 

我有零經驗,但我很想知道如何得到這個工作...

回答

1

首先,proxy_redirect指令是什麼的對面你需要。它僅用於在來自上游的3xx響應中重寫Location響應標頭。詳情請參閱this document

您可以在執行proxy_pass,例如位置塊內使用rewrite ... break聲明:

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

詳見this document