反向代理是什么?客戶端向反向代理服務(wù)器發(fā)送請求,反向代理判斷后轉(zhuǎn)交請求給真實(shí)服務(wù)器,并將獲得的內(nèi)容返回給客戶端。對客戶端而言,它就是原始服務(wù)器,客戶端不需要做任何設(shè)置。例如你訪問http://www.szl724.com/?p=zhangnq,真實(shí)情況是http://www.szl724.com/?p=中沒有zhangnq頁面。你看到的內(nèi)容是代理服務(wù)器偷偷從另外一臺(tái)服務(wù)器上取回來,然后作為自己的內(nèi)容返回用戶的。
nginx是一個(gè)高性能的web服務(wù)器,應(yīng)用廣泛。下面是兩個(gè)nginx反向代理的配置例子。
location ^~ /nagios/ { proxy_pass http://192.168.0.253; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; } location ^~ /blog1/ { proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_pass http://192.168.0.243/blog/; }最重要的是proxy_pass這個(gè)配置,是他負(fù)責(zé)轉(zhuǎn)發(fā)請求到其他的服務(wù)器。
細(xì)心的朋友可能發(fā)現(xiàn)第一個(gè)proxy_pass后面沒有加/,而第二個(gè)proxy_pass卻加了/ 。簡單說沒加/時(shí),匹配的目錄地址會(huì)加給后端web服務(wù)器,而加了/就表示絕對路徑,不會(huì)把匹配的目錄傳給后端web服務(wù)器。例如訪問http://www.szl724.com/?p=nagios/,實(shí)際訪問的是http://192.168.0.253/nagios/。訪問http://www.szl724.com/?p=blog1/實(shí)際訪問的是http://192.168.0.243/blog/。使用絕對路徑可以給后端web項(xiàng)目指定不同的子目錄名稱。
其他詳細(xì)參數(shù)配置可以參考官方文檔說明。