用Nginx做反向代理時(shí),可能會(huì)出現(xiàn)一個(gè)問(wèn)題,當(dāng)訪問(wèn)靜態(tài)頁(yè)面時(shí),正常訪問(wèn),但當(dāng)訪問(wèn)動(dòng)態(tài)頁(yè)面時(shí),就會(huì)跳轉(zhuǎn)到原域名。
例如:www.test1.com反向代理www.test2.com ,即當(dāng)訪問(wèn)www.test1.com時(shí),其實(shí)是打開(kāi)的www.test2.com的網(wǎng)站內(nèi)容。
對(duì)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;
}
}
這樣配置,訪問(wèn)www.test1.com靜態(tài)網(wǎng)頁(yè)時(shí),打開(kāi)的是這個(gè)域名。但當(dāng)訪問(wèn)網(wǎng)站上動(dòng)態(tài)頁(yè)面或者登陸網(wǎng)站后臺(tái)時(shí),就會(huì)跳轉(zhuǎn)到www.test2.com這個(gè)域名了,這樣就暴露我們的原域名了。
解決方法很簡(jiǎn)單,在上面代碼中添加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;
}
}
加上這段代碼后,再檢查網(wǎng)站,就會(huì)發(fā)現(xiàn)訪問(wèn)www.test1.com的動(dòng)態(tài)頁(yè)時(shí),就不會(huì)跳轉(zhuǎn)到原域名了。
新聞熱點(diǎn)
疑難解答
圖片精選