工作中會存在配置多個location模組的情況,如果都配置在nginx.conf配置檔案中不是特別容易管理,這種情況下就需要單獨來定義乙個模組的location,可以在nginx.conf配置中指定它的子配置檔案,以及location模組中常用的引數,如何配置呢就來說給大家。1.配置虛擬主機檔案
include模組:位於http模組裡面
http
2.root和alias區別
root:指定web家目錄,在定義location的時候,檔案的絕對路徑=root+location
alias:定義路徑別名,會把訪問的路徑重新定義到其他指定的路徑
location /about
location /test
3.location詳細使用
沒有使用正規表示式的時候,nginx會先在server中的多個location模組選取匹配度最高的uri。
uri:是使用者請求的字串,即網域名稱後面的web檔案路徑。
然後使用該location模組中的正則uri和字串,如果匹配成功就結束搜尋
語法規則:location [ = | ~ | ~* | ^~ ] /uri/
= #用於標準uri前,精確匹配
~ #表示包含正則並區分大小寫
~* #表示包含正則並不區分大小寫
!~ #表示包含正則並區分大小寫不匹配
!~* #表示包含正則並不區分大小寫不匹配
^~ #表示包含正則並且匹配以什麼開頭
$ #表示包含正則並且匹配以什麼結尾
\ #表示包含正則並且轉義字元
* #表示包含正則並且代表任意長度的任意字元
詳解示例:
匹配優先順序:=,^~,~,~*,/
(location =
)>
(location ^~ 路徑)
>
(location ~,~* 路徑)
>
(location 部分起始路徑)
>
(location /)
精確匹配
區分大小寫
不區分大小寫
案例匹配uri
location ^~ /images
location /images1
匹配案例-檔名字尾
匹配案例-優先順序
結果:^~ > ~* > /部分路徑
4.nginx的四層訪問限制
可以通過匹配客戶端源ip位址進行限制
deny all; #拒絕所有,全域性設定,也可以區域性設定變數設定黑名單
allow 192.168.1.0/24; #允許指定ip
location /about
5.nginx賬戶認證功能yum install -y httpd-tools
htpasswd -cbm /usr/local/nginx/conf/.htpasswd user1 123456 #建立第乙個使用者
htpasswd -bm /usr/local/nginx/conf/.htpasswd user2 123456 #建立第二個使用者
vim /usr/local/nginx/conf/nginx.conf
location = /login
6.自定義報錯頁面error_page 500 502 404 /error.html;
location = /error.html
7.自定義訪問日誌
針對每個虛擬機器檔案配置日誌,定義日誌位置為server下
error_page 500 502 404 /error.html;
access_log /usr/local/nginx/logs/www_xiaoma_net.access_log;
error_log /usr/local/nginx/logs/www_xiaoma_net.error_log;
location = /error.html
8.檢測檔案是否存在,即重定向頁面
try_file會按順序檢查檔案是否存在,返回第乙個找到的檔案或者資料夾(結尾加上/表示為資料夾)。
如果所有檔案都訪問不到就會進行內部重定向到最後乙個引數,只有最後乙個引數可以引起內部重定向之前的引數只設定內部uri的指向。最後乙個引數是回退uri且必須存在。
location /about
$uri:指使用者在瀏覽器輸入的檔案路徑,即網域名稱後面的路徑
try_files $uri /about/default.html;
try_files $uri
$uri/index.html $uri.html /about/default.html;
9.長鏈結配置
keepalive_timeout number #設定保持連線超時時長,0表示禁止長連線,預設為75s。通常配置在http欄位作為全域性配置
keepalive_request number #再一次長連線上所能允許請求的最大資源值,預設為100
location /download
11.設定上傳伺服器client_max_body_size 1m;
#設定允許客戶端上傳單個檔案的最大值,預設值為1m
client_body_buffer_size size;
#用於接收每個客戶端請求報文的body部分的緩衝區,預設16k
超出此大小時,其將被暫存到磁碟上的由下面client_body_tepm_path指令所定義的位置
uclient_body_temp_path path [level1 [level2 [level3]]]
;#設定儲存客戶端請求報文的body部分的臨時儲存路徑及子目錄結構和數量
配置示例:
client_max_body_size 10m;
client_body_buffer_size 16k;
#reload nginx會自動建立temp目錄
12.限制請求方式
限制客戶端使用除了指定的請求方式之外的其他方式無法訪問
method:get,post,put,delete,mkcol,copy,move,options,propfind,proppatch,lock,unlock,patch
limit_except get post
location /upload
}
實驗三 詳細設計
課程 班級學 號 姓 名 實驗時間 軟體工程導論 12電信2 120705234 楊晨2013.12.23 軟體工程實驗報告 三 系統詳細設計 根據需求分析 概要設計,完成系統的詳細設計 詳細設計的主要任務是設計每個模組的實現演算法 所需的區域性資料結構。詳細設計的目標有兩個 實現模組功能的演算法要...
Unity Shader 詳細自學(三)
pragma target 3.0 表示我們將要對這個著色器使用硬體的 shader model 3.0 的能力,硬體的 shader model 是硬體乙個用於著色處理的基礎的指令範圍和能力,值越高表示能使用越高階的功能,如果沒有使用 pragma target 3.0 這句指令,預設使用的是 s...
詳細的dos命令(三)
del 刪除檔案命令 1 功能 刪除指定的檔案。2 型別 內部命令 3 格式 del 碟符 路徑 檔名 p 4 使用說明 1 選用 p引數,系統在刪除前詢問是否真要刪除該檔案,若不使用這個引數,則自動刪除 2 該命令不能刪除屬性為隱含或唯讀的檔案 3 在檔名稱中可以使用萬用字元 八 undelete...