nginx 常用指令及使用 二

2021-07-26 17:01:27 字數 3983 閱讀 4366

http模組相關指令

1 alias [file|dirpath]

語法:alias [file|dirpath]

預設值:no

使用環境:location

作用:用於在url和檔案系統路徑之間實現對映,跟root類似,但是網頁檔案的根路徑不會改變只是改變請求url的檔案系統路徑

eg: location /i/

訪問 /i/top.png 會返回檔案 /spool/w3/images/top.png在含有正則的location中不能使用alias

可以使用root和rewrite的組合來實現

2 error_page

語法:error_page code [code ...] [=answer-code] uri

預設值:no

使用環境:location http server if

作用:用於設定如果出現指定的狀態碼,返回指定的uri頁面

還可以更改返回的狀態碼

eg: error_page 400 =200 /error.html 遇到400的響應會返回error頁面,且響應碼為200

3 if_modified_since

語法:if_modified_since [off|exact|before]

預設值:if_modified_since exact

使用環境:location http server 

作用:if_modified_since是瀏覽器傳送的server的header資訊。當再次請求本地快取頁面時,brower會先用if_modified_since將nginx server先前傳送過來的last-modify的時間戳傳送回去驗證,通過這個時間戳驗證brower的快取是不是最新的,如果是,返回304否返回新的內容,這樣可以減少網路傳輸,加快響應,也減輕server的負擔

off不檢查

exact時間完全符合

before檔案修改時間應該早於if-modified-since請求頭中的時間

4 index

語法:index file [file ...]

預設值:index index.html

使用環境:location http server 

作用:用來設定nginx訪問的預設首頁檔案

autoindex on; //設定顯示目錄

5 keepalive_timeout

語法:keepalive_timeout [time]

預設值:keepalive_timeout 100

使用環境:location http server 

作用:使客戶端的連線長期有效,當出現對伺服器的後期請求時,可以避免反覆的建立連線,大部分伺服器都支援,但對於負載較重的**還有乙個問題就是,雖然為客戶端保持連線有一定好處,但暫停期間本來可以釋放的資源仍在占用,當web伺服器和應用伺服器在同一臺機器上執行時,它對資源利用的影響更加明顯

6 keepalive_requests

語法:keepalive_requests num

預設值:keepalive_requests 100

使用環境:location http server 

作用:設定乙個keep-alive可以使用的次數,一次請求結束後,若該連線使用的次數未達到n,不會主動斷開連線,直到keepalive_timeout設定的實際才斷開連線

7 large_client_header_buffers

語法:large_client_header_buffers num size

預設值:large_client_header_buffers 4 4k/8k;

使用環境:http server 

作用:用於設定client請求的header頭緩衝區的大小,預設4k客戶端請求行大小不能超過該值,否則會報錯

8 limit_rate

語法:limit_rate speed

預設值:no

使用環境:http server location if

8 limit_rate_after

語法:limit_rate_after size

預設值:limit_rate_after 1m

使用環境:http server location if

9 listen

語法:listen addr:port [default[backlog=num |rcvbuf=size|sendbuf=size|accept_filter=filter|deffered|bind|ssl]]

預設值:limit_rate_after 1m

使用環境:server

作用:設定主機監聽的ip和埠,只寫ip,埠預設80

eg: listen 127.0.0.1:8000

listen 127.0.0.1

listen *:8000   

監聽ipv6例項:listen [::]:8000

設定支援http和https 

listen 80;

listen 443 default ssl;

10 location

語法:location [=|~|~*|^~] /uri/

預設值:no

使用環境:server

作用:允許不同的url型別進行不同的設定,可以使用字串或者正則,使用正則必須使用下邊的字首

1)~表示區分大小寫的匹配

2)~*表示不區分大小寫的匹配

在匹配的過程中,nginx將最先匹配字串,然後匹配正規表示式,匹配到第乙個正規表示式後會停止搜尋,若匹配到正規表示式,則使用正則搜尋的結果,否則使用字串匹配的結果

可以使用^~來禁止匹配到字串後再去檢查正規表示式,匹配到uri後將停止查詢

使用=表示精準匹配,若找到匹配uri停止查詢,eg location =/ 只能匹配到/而/test.html則不能被匹配,eg:

匹配結果示例:

/                     -> conf a

/test/test.html       -> conf b

/images/1.gif         -> conf c

/test/img/1.png       -> conf d

11 root

語法:root path

預設值:root html

使用環境:server http location if

作用:主要用來指定請求的文件根目錄

12 server

語法:server

預設值:no

使用環境:http

作用:用於配置虛擬主機,使用listen表示監聽的埠 使用server_name來設定虛擬主機的名稱

處理的優先順序:1)全名 2)萬用字元開頭的*.com  3)萬用字元結尾的test.*  4)使用正則的

13 server_tokens

語法:server_tokens on | off

預設值:no

使用環境:http server location

作用:控制是否在錯誤頁面或者伺服器header頭顯示nginx版本號給客戶端

http access模組

提供基於host名稱的訪問限制 eg:

location /

allow指令指定允許訪問的ip,deny指定禁止某些ip訪問某些vhost

nginx相關指令及使用(三)

http auth basic模組 採用基於http基本身份驗證的使用者名稱和密碼登入方式,來保護虛擬主機或者目錄 location htppasswd檔案的格式如下 user1 pass1 user2 pass2 comment user3 pass3 http的autoindex模組 提供顯示目...

nginx相關指令及使用(四)

http mamcached模組 eg,若使用者訪問 cache 開頭的uri,則讀取以uri為key的memcache快取記憶體顯示給使用者 若key不存在,重定向到 write memcached.php檔案給程式往mem寫快取,快取時間120s location cache location ...

nginx常用操作指令及配置說明

最近在做專案的時候用到了nginx,剛開始一頭霧水,踩了一天坑。在網上找了一些資料,這裡做下記錄。nginx常用指令 nginx s quit 優雅停止nginx,有連線時會等連線請求完成再殺死worker程序 nginx s reload 優雅重啟,並重新載入配置檔案nginx.conf ngin...