nginx反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。
正向代理:實現客戶端上網
反向代理:代理訪問后端web服務器,
區別:正向代理的對象是客戶端,反向代理的對象是服務器端
server{listen80;server_namewww.test.com;location/{proxy_passhttp://192.9.191.31:80;proxy_set_headerHost$host;#多級代理需要添加該配置proxy_set_headerX-Real-IP$remote_addr;#只有1級代理獲取客戶端真實ipproxy_set_headerX-Forwarded-For$remote_addr;#多級代理獲取客戶端真實ipproxy_http_version1.1;#這兩個最好也設置,HTTP協議中對長連接的支持是從1.1版本之后才有的proxy_set_headerConnection"";proxy_redirectoff;proxy_connect_timeout600;}location/forum/{proxy_passhttp://192.168.1.52/bbs/test/;}#訪問http://www.nginx.com/forum/代理服務器會把url資源替換成http://192.168.1.52/bbs/對應192.168.1.52的資源路徑是/usr/share/nginx/html/bbs/test/index.html#注意:這里的proxy_pass結尾要有/location~*\.(jpg|png|gif)${proxy_passhttp://192.168.1.52;}#注意:如果是正則匹配,proxy_pass的url結尾不能有/或者其他的后綴}
proxy_set_header:可以更改或添加客戶端的請求頭部信息內容,并轉發之后端服務器#常用如下:proxy_set_headerHost$host;#添加HOST到報文頭部,其值為客戶端的URL,proxy_set_headerX-Real-IP$remote_addr;#把客戶端ip地址賦值給變量X-Real-IP,X-Real-IP的值是字符串類型;客戶端可以是用戶客戶端或代理服務器proxy_set_headerX-Forwarded-For$remote_addr;##把客戶端ip地址賦值給變量X-Forwarded-For,X-Forwarded-For的值是一個列表,客戶端可以是用戶客戶端或代理服務器proxy_set_headerConnection"";proxy_connect_timeout:配置nginx服務器與后端服務器嘗試建立連接的超時時間,默認為60秒proxy_http_version:用于設置nginx提供代理服務的HTTP協議的版本:proxy_redirectoff;
1、如果沒有使用代理服務器
REMOTE_ADDR=客戶端IPHTTP_X_FORWARDED_FOR=沒數值或不顯示$ip=$_SERVER['REMOTE_ADDR'];REMOTE_ADDR=最后一個代理服務器IP
2、使用透明代理
HTTP_X_FORWARDED_FOR=客戶端真實IP(經過多個代理服務器時,這個值類似:221.5.252.160,203.98.182.163,203.129.72.215)
這類代理還會將客戶真實ip發送到請求對象,無法隱藏真實ip。
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
3、使用普通匿名代理服務器
REMOTE_ADDR=最后一個代理服務器IPHTTP_X_FORWARDED_FOR=代理服務器IP(經過多個代理服務器時,這個值類似:203.98.182.163,203.98.182.163,203.129.72.215)
這樣就隱藏了客戶端的真實ip,但服務器會知道客戶端是通過代理服務器去訪問的。
4、使用欺騙性代理服務器
REMOTE_ADDR=代理服務器IPHTTP_X_FORWARDED_FOR=隨機的IP(經過多個代理服務器時,這個值類似:220.4.251.159,203.98.182.163,203.129.72.215)
5、使用高匿名代理
REMOTE_ADDR=代理服務器IPHTTP_X_FORWARDED_FOR=沒數值或不顯示
使用這種代理時,不同瀏覽器不同設備會返回不同的ip頭信息,因此PHP使用$_SERVER["REMOTE_ADDR"]、$_SERVER["HTTP_X_FORWARDED_FOR"]獲取的值可能是空值也可能是“unknown”值。
PHP獲取ip代碼如下:
functionget_real_ip(){//判斷服務器是否允許$_SERVERif(isset($_SERVER)){if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){$realip=$_SERVER['HTTP_X_FORWARDED_FOR'];}elseif(isset($_SERVER['HTTP_X_REAL_IP'])){$realip=$_SERVER['HTTP_X_REAL_IP'];}elseif(isset($_SERVER['HTTP_CLIENT_IP'])){$realip=$_SERVER['HTTP_CLIENT_IP'];}else{$realip=$_SERVER['REMOTE_ADDR'];}}else{//不允許就使用getenv獲取if(getenv("HTTP_X_FORWARDED_FOR")){$realip=getenv("HTTP_X_FORWARDED_FOR");}elseif(getenv("HTTP_X_REAL_IP")){$realip=getenv("HTTP_X_REAL_IP");}elseif(getenv("HTTP_CLIENT_IP")){$realip=getenv("HTTP_CLIENT_IP");}else{$realip=getenv("REMOTE_ADDR");}}return$realip;}
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
這是陽光明媚的一天,互聯網里風平浪靜,一切都是欣欣向榮。我就是在這樣一個平凡的日子里誕生了。我給自己起了個名字叫超,不過我的師哥師姐們都喜歡叫我小超。從出生的那...
網上關于SEO優化的知識很多也很雜,很多新手都不知道如何選擇。本來耗子網站里每篇文章都有的詳細步驟的,考慮到很雜,于是耗子對各種SEO優化基礎知識進行了整理,但...
今天,我給大家講講如何利用電影貼吧引流輕松變現。這個很適合新手。廢話不多說,直接上干貨。每上映一個新片子,只要這個片子有一定的熱度,馬上該片子的貼吧就會出現各種...
SEO是英文Search Engine Optimization 的縮寫,中文譯為搜索引擎優化。簡單地說,SEO是指從自然搜索結果獲得網站流量的技技術和過程。復雜但更嚴謹些的定義如下: SEO是指在了解搜索引擎自...
SEO基礎和如何做好搜索引擎優化SEO搜索引擎優化有哪些操作?1.關鍵詞挖掘:長尾關鍵詞是指網站上的非目標關鍵詞但與目標關鍵詞相關的也可以帶來搜索流量的組合型關鍵詞。2.結構優化:能正確表達網站的基本內容及其內容之間的層次關系,從用戶的角度考慮,使用戶在網站中瀏覽時可以方便地獲取信息,不至于迷失。3.數據分析:是圍繞著顧客進行的,公司各部門需要的數據所不一樣。高層想知道宏觀數據,以便于戰略調整;中...
隨著智能手機和平板電腦的普及,app營銷成為商品的的一種新型的營銷手段。比如蘋果ios系統的iTune商店,安卓應用市場,微軟應用商城,都是app營銷衍生出來的app商店。APP營銷能夠精準交付客戶,從聯系客戶、吸引客戶、留住客戶、管理客戶、促銷活動,最后達成銷售,整個營銷過程只需在APP這個小小的客戶端就能完成。用應用程序APP進行營銷活動,具有如下特點:1、成本低,只有開發app的成本;2、高...