此方法可以解決任何JS跨域問(wèn)題,并與瀏覽器類(lèi)型無(wú)關(guān)。
1.原理介紹
所謂的代理是指代理用戶(hù)的請(qǐng)求,而反向代理是指代理被用戶(hù)請(qǐng)求。一個(gè)主動(dòng),一個(gè)被動(dòng)的區(qū)別。如下圖所示,對(duì)于代理服務(wù)器,用戶(hù)1.2、1.3的請(qǐng)求都被代理服務(wù)器封裝到1.1進(jìn)行代理請(qǐng)求。當(dāng)請(qǐng)求到達(dá)反向代理服務(wù)器10.1.1.11時(shí),反向代理服務(wù)器并沒(méi)有執(zhí)行此請(qǐng)求,而交給了相應(yīng)的應(yīng)用服務(wù)器去處理,處理結(jié)果被封裝到10.1.1.11并返回給192.168.1.1。正是由于處理結(jié)果被封裝到了10.1.1.11,所以用戶(hù)的瀏覽器上所識(shí)別的地址沒(méi)有發(fā)生變化,一直是10.1.1.11。這便逃過(guò)了瀏覽器的“法眼”。
2. 部署方法
下載 Apache web server 2.2,安裝完成后,修改安裝目錄下的 conf/httpd.conf 文件,將以下兩行前的注釋字符 # 去掉。
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
在conf/httpd.conf文件后添加
ProxyPass /sina http://www.sina.com
ProxyPassReverse /sina http://www.sina.com
ProxyPass /sina http://www.163.com
ProxyPassReverse /sina http://www.163.com
聯(lián)系客服