本文系統(tǒng):Centos6.5_x64
三臺主機:nginx主機,hostname: master.lansgg.com IP: 192.168.10.128
apache主機,hostname: client1.lansgg.com IP: 192.168.10.129
一、nginx 地址重定向
二、nginx 反向代理
1、地址重定向:是指當使用者瀏覽某個網(wǎng)址時,將他導向到另一個網(wǎng)址的技術(shù)。常用在把一串很長的網(wǎng)址,轉(zhuǎn)成較短的網(wǎng)址。因為當要傳播某網(wǎng)站時,常常因為網(wǎng)址太長,不好記憶;又有可能因為換了網(wǎng)路的免費網(wǎng)頁空間,網(wǎng)址又必須要變更,不知情的使用者還以為網(wǎng)站關(guān)閉了。這時就可以用網(wǎng)路上的轉(zhuǎn)址了。這個技術(shù)使一個網(wǎng)頁是可借由不同的統(tǒng)一資源定位符(URL)連結(jié)。
1.1、這 個模塊允許使用正則表達式重寫URI(需PCRE庫),并且可以根據(jù)相關(guān)變量重定向和選擇不同的配置。如果這個指令在server字段中指定,那么將在被 請求的location確定之前執(zhí)行,如果在指令執(zhí)行后所選擇的location中有其他的重寫規(guī)則,那么它們也被執(zhí)行。如果在location中執(zhí)行這 個指令產(chǎn)生了新的URI,那么location又一次確定了新的URI。這樣的循環(huán)可以最多執(zhí)行10次,超過以后nginx將返回500錯誤
正則表達式匹配,其中:
* ~ 為區(qū)分大小寫匹配
* ~* 為不區(qū)分大小寫匹配
* !~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配
文件及目錄匹配,其中:
* -f和!-f用來判斷是否存在文件
* -d和!-d用來判斷是否存在目錄
* -e和!-e用來判斷是否存在文件或目錄
* -x和!-x用來判斷文件是否可執(zhí)行
flag標記有:
* last 相當于Apache里的[L]標記,表示完成rewrite
* break 終止匹配, 不再匹配后面的規(guī)則
* redirect 返回302臨時重定向 地址欄會顯示跳轉(zhuǎn)后的地址
* permanent 返回301永久重定向 地址欄會顯示跳轉(zhuǎn)后的地址
一些可用的全局變量有,可以用做條件判斷
$args, 請求中的參數(shù);$content_length, HTTP請求信息里的"Content-Length";$content_type, 請求信息里的"Content-Type";$document_root, 針對當前請求的根路徑設置值;$document_uri, 與$uri相同;$host, 請求信息中的"Host",如果請求中沒有Host行,則等于設置的服務器名;$limit_rate, 對連接速率的限制;$request_method, 請求的方法,比如"GET"、"POST"等;$remote_addr, 客戶端地址;$remote_port, 客戶端端口號;$remote_user, 客戶端用戶名,認證用;$request_filename, 當前請求的文件路徑名$request_body_file$request_uri, 請求的URI,帶查詢字符串;$query_string, 與$args相同;$scheme, 所用的協(xié)議,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com$1 redirect;$server_protocol, 請求的協(xié)議版本,"HTTP/1.0"或"HTTP/1.1";$server_addr, 服務器地址,如果沒有用listen指明服務器地址,使用這個變量將發(fā)起一次系統(tǒng)調(diào)用以取得地址(造成資源浪費);$server_name, 請求到達的服務器名;$server_port, 請求到達的服務器端口號;$uri, 請求的URI,可能和最初的值有不同,比如經(jīng)過重定向之類的。
rewrite 指令:可以使用在 server, location, if 區(qū)域;
語法:rewrite regex replacement flag
按照相關(guān)的正則表達式與字符串修改URI,指令按照在配置文件中出現(xiàn)的順序執(zhí)行。
新聞熱點
疑難解答