用Nginx做反向代理時,可能會出現一個問題,當訪問靜態頁面時,正常訪問,但當訪問動態頁面時,就會跳轉到原域名。
例如:www.test1.com反向代理www.test2.com ,即當訪問www.test1.com時,其實是打開的www.test2.com的網站內容。
對Nginx.conf的配置代碼如下
server
{
listen 80;
server_name www.test1.com;
location / {
proxy_pass http://www.test2.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
這樣配置,訪問www.test1.com靜態網頁時,打開的是這個域名。但當訪問網站上動態頁面或者登陸網站后臺時,就會跳轉到www.test2.com這個域名了,這樣就暴露我們的原域名了。
解決方法很簡單,在上面代碼中添加proxy_set_header $host www.test2.com; ,修改后,代碼如下:
server
{
listen 80;
server_name www.test1.com;
location / {
proxy_set_header $host www.test2.com;
proxy_pass http://www.test2.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
加上這段代碼后,再檢查網站,就會發現訪問www.test1.com的動態頁時,就不會跳轉到原域名了。
新聞熱點
疑難解答