(三)詳細nginx location講解配置

2021-10-10 17:25:50 字數 3550 閱讀 5481

工作中會存在配置多個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...