本文系統: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、地址重定向:是指當使用者瀏覽某個網址時,將他導向到另一個網址的技術。常用在把一串很長的網址,轉成較短的網址。因為當要傳播某網站時,常常因為網址太長,不好記憶;又有可能因為換了網路的免費網頁空間,網址又必須要變更,不知情的使用者還以為網站關閉了。這時就可以用網路上的轉址了。這個技術使一個網頁是可借由不同的統一資源定位符(URL)連結。
1.1、這 個模塊允許使用正則表達式重寫URI(需PCRE庫),并且可以根據相關變量重定向和選擇不同的配置。如果這個指令在server字段中指定,那么將在被 請求的location確定之前執行,如果在指令執行后所選擇的location中有其他的重寫規則,那么它們也被執行。如果在location中執行這 個指令產生了新的URI,那么location又一次確定了新的URI。這樣的循環可以最多執行10次,超過以后nginx將返回500錯誤
正則表達式匹配,其中:
* ~ 為區分大小寫匹配
* ~* 為不區分大小寫匹配
* !~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配
文件及目錄匹配,其中:
* -f和!-f用來判斷是否存在文件
* -d和!-d用來判斷是否存在目錄
* -e和!-e用來判斷是否存在文件或目錄
* -x和!-x用來判斷文件是否可執行
flag標記有:
* last 相當于Apache里的[L]標記,表示完成rewrite
* break 終止匹配, 不再匹配后面的規則
* redirect 返回302臨時重定向 地址欄會顯示跳轉后的地址
* permanent 返回301永久重定向 地址欄會顯示跳轉后的地址
一些可用的全局變量有,可以用做條件判斷
$args, 請求中的參數;$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, 所用的協議,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com$1 redirect;$server_protocol, 請求的協議版本,"HTTP/1.0"或"HTTP/1.1";$server_addr, 服務器地址,如果沒有用listen指明服務器地址,使用這個變量將發起一次系統調用以取得地址(造成資源浪費);$server_name, 請求到達的服務器名;$server_port, 請求到達的服務器端口號;$uri, 請求的URI,可能和最初的值有不同,比如經過重定向之類的。
rewrite 指令:可以使用在 server, location, if 區域;
語法:rewrite regex replacement flag
按照相關的正則表達式與字符串修改URI,指令按照在配置文件中出現的順序執行。
新聞熱點
疑難解答