2014-03-04 21 views
0

我目前正試圖用extern cdn請求的外部Flash應用程序替換某些圖像。所以我修改了etc/hosts文件與現在,我運行一個Web服務器nginx的行重定向某個域的特定網址,同時保持其他網域不受影響

127.0.0.1 static.cdn.example.com 

,代理到的CDN的所有呼叫。我想要替換的圖像被路由到本地文件,所有其他文件應該被傳遞到原始的cdn。我的nginx的配置看起來像這樣

location /flash { 
    rewrite ^.*image1.png /image1.png; 
    rewrite ^.*image2.png /image2.png; 
    rewrite ^.*image3.png /image3.png; 
    proxy_pass http://static.cdn.example.com; 
} 

的問題是,我的主機進入防止解析URL nginx的,它在無窮的重定向循環結束。我試圖自己查找cdn-ip,但沒有奏效。我能做什麼或我做錯了什麼?有更簡單的方法來攔截特定的網址嗎?

我使用Windows 7

回答

1

使用resolver參數。 Nginx將直接使用解析器DNS服務器,跳過/etc/hosts

location /flash { 
    resolver 8.8.8.8 8.8.4.4; 
    rewrite ^.*image1.png /image1.png; 
    rewrite ^.*image2.png /image2.png; 
    rewrite ^.*image3.png /image3.png; 
    proxy_pass http://static.cdn.example.com; 
} 

在這裏,我的DNS設置爲Google's public DNS servers,但隨意使用任何你想要的。

+0

謝謝,這似乎是我正在尋找的解決方案。不幸的是,每當我嘗試使用解析器時,nginx都會拋出錯誤[error] 2816#1784:* 9210在連接到上游時,select()支持的最大描述符數爲1024。你有什麼想法,從哪裏來? – Gnietschow

+0

我現在用firefox插件FoxyProxy解決了它,只將特定的url重定向到nginx-server,它返回本地文件。不是最好的方式,但它的作品:) – Gnietschow

相關問題