nginx 基礎模塊 2 虛擬機location等

一 虛擬主機
server {
listen 80;
server_name www.yang.com;
#虛擬機主機重點,一樣的ip端口,虛擬機主機就是靠這邊的域名來路由內容的
root /yang/;
#根目錄
index index.html index.php;
access_log /yang/yang_com_access.log main;

    location / {
    }

}
#虛擬機主機只需要在conf.d目錄裏 另起一個.conf 文件,裏面把server段配好就行了,如果是相同ip端口 用域名來區分,就像上面代碼一樣

二 日誌
nginx 基礎模塊 2 虛擬機location等
#這些字段是控制日誌輸出內容的

$remote_addr變量:記錄了客戶端的IP地址(普通情況下)。
$remote_user變量:當nginx開啓了用戶認證功能後,此變量記錄了客戶端使用了哪個用戶進行了認證。
$time_local變量:記錄了當前日誌條目的時間。
$request變量:記錄了當前http請求的方法、url和http協議版本。
$status變量:記錄了當前http請求的響應狀態,即響應的狀態碼,比如200、404等響應碼,都記錄在此變量中。
$body_bytes_sent變量:記錄了nginx響應客戶端請求時,發送到客戶端的字節數,不包含響應頭的大小。
$http_referer變量:記錄了當前請求是從哪個頁面過來的,比如你點了A頁面中的超鏈接才產生了這個請求,那麼此變量中就記錄了A頁面的url。
$http_user_agent變量:記錄了客戶端的軟件信息,比如,瀏覽器的名稱和版本號。
nginx 基礎模塊 2 虛擬機location等
#設置訪問日誌的存儲路徑,error_log 是設置錯誤日誌的

三.location
優先級

= 精確匹配:用於標準uri前,要求請求字符串和uri嚴格匹配。如果匹配成功就停止匹配,立即執行該location裏面的請求。
正則匹配:用於正則uri前,表示uri裏面包含正則,並且區分大小寫。
~* 正則匹配:用於正則uri前,表示uri裏面包含正則,不區分大小寫。
^~ 非正則匹配;用於標準uri前,nginx服務器匹配到前綴最多的uri後就結束,該模式匹配成功後,不會使用正則匹配。
https://www.jianshu.com/p/577f1d15c9e0
http://www.jianshu.com/u/fa86f3cdaa11
無 普通匹配(\);與location順序無關,是按照匹配的長短來取匹配結果。若完全匹配,就停止匹配。
PS: 優先級從高到低
1 “=”精準匹配

location = /news/ {
echo “test1”;
}
[root@www quail]# curl 192.168.249.132/news/
test1
2 "~"區分大小寫正則匹配

location ~ .(html) {
echo ‘test2’;
}
location ~ .(htmL) {
echo ‘test3’;
}
[root@www quail]# curl 192.168.249.132/index.html
test2
[root@www quail]# curl 192.168.249.132/index.htmL
test3
3 “~*”不區分大小寫的正則匹配

location ~* .(html){
echo ‘test4’;
}
[root@www quail]# curl 192.168.249.132/index.htmL
test4
[root@www quail]# curl 192.168.249.132/index.html
test4
4 “^~”不進行正則匹配的標準匹配,只匹配前綴

location ^~ /index/ {
echo ‘test5’;
}
[root@www quail]# curl 192.168.249.132/index/
test5
[root@www quail]# curl 192.168.249.132/index/heihei
test5
[root@www quail]# curl 192.168.249.132/index/asdnmkalsjd
test5
5 普通匹配

location / {
echo ‘test6’;
}
[root@www quail]# curl 192.168.249.132
test6

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章