Nginx經驗總結
1. post方法請求靜態文件
默認情況下,web服務器都不允許post方法請求靜態文件,會返回響應403 Not Allowed。但是有些時候確實有這種需求。可以通過配置文件來改變這種設置:在需要處理靜態文件的location里這樣配置即可,
location /static/ {
root /path/to/files/;
error_page 405 =200 $uri;
}
2. Nginx默認一次只能發送50個子請求(subrequest)
在nginx源碼中,src/http/ngx_http_request.h文件中:
#define NGX_HTTP_MAX_SUBREQUESTS 50
3. Nginx location匹配規則
匹配順序:
a. 字符串匹配,和location塊的順序無關,根據uri匹配所有的location,從而得到一個匹配度最大的location。
b. 正則匹配,按照location塊的順序從前向后,如果找到匹配的location,則直接由該location處理請求。如果所有的location都不匹配,則由在字符串匹配中,匹配度最大的location處理。
匹配規則:
= /uri/ ——字符串精確匹配
^~ /uri/ ——字符串前綴匹配
~ /uri/ ——大小寫區分的正則匹配
~* /uri/ ——大小寫不區分的正則匹配
@ /uri/ ——命名location,只用于內部重定向請求
其中,如果=和^~匹配成功之后會立即停止搜索,即不再進行正則匹配。
4. 監控Nginx的狀態
需要HttpStubStatusModule模塊,默認情況是不開啟的,所以需要編譯時,指定開啟這個模塊。
./configure --with-http_stub_status_modules
location /nginx_status { # copied from http://blog.kovyrin.net/2006/04/29/monitoring-nginx-with-rrdtool/ stub_status on; access_log off; allow SOME.IP.ADD.RESS; deny all; }
然后通過瀏覽器訪問localhost/nginx_status,瀏覽器顯示Nginx的狀態
Active connections: 291
server accepts handled requests
16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106
5. Nginx啟用aio
默認Nginx是沒有開啟aio的,需要在配置編譯時,加上相應選項否則啟動Nginx會報錯unknown directive “aio”。
./configure --with-file-aio
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!