多server優先順序

2021-10-09 07:36:43 字數 2450 閱讀 1036

在開始處理乙個http請求時,nginx會取出header頭中的host變數,與nginx.conf中的每個server_name進行匹配,以此決定到底由哪乙個server來處理這個請求,但nginx如何配置多個相同的server_name,會導致server_name出現優先順序訪問衝突。

[root@web01 /etc/nginx/conf.d]

# vim test1.conf

server

}[root@web01 /etc/nginx/conf.d]

# vim test2.conf

server

}[root@web01 /etc/nginx/conf.d]

# vim test3.conf

server

}

[root@web01 /etc/nginx/conf.d]

# mkdir /code/test

[root@web01 /etc/nginx/conf.d]

# echo test1111111111111 > /code/test1/index.html

[root@web01 /etc/nginx/conf.d]

# echo test2222222222222 > /code/test2/index.html

[root@web01 /etc/nginx/conf.d]

# echo test3333333333333 > /code/test3/index.html

10.0.0.7 test1.com test2.com test3.com

#請求網域名稱時,可以請求到網域名稱對應的頁面,請求ip時,返回的頁面時配置檔案中第乙個配置的站點

#在開始處理乙個http請求時,nginx會讀取header(請求頭)中的host(網域名稱),與每個server中的server_name進行匹配,來決定用哪乙個server標籤來完成處理這個請求,有可能乙個host與多個server中的server_name都匹配,這個時候就會根據匹配優先順序來選擇實際處理的server。優先順序匹配結果如下:

1.首先選擇所有的字串完全匹配的server_name。(完全匹配)

2.選擇萬用字元在前面的server_name,如 *.test.com (blog.test.com)

3.選擇萬用字元在後面的server_name,如 www.test.* (www.test.com www.test.cn)

4.最後選擇使用正規表示式匹配的server_name

5.如果全部都沒有匹配到,那麼將選擇在listen配置項後加入[default_server]的server塊

6.如果沒寫,那麼就找到匹配listen埠的第乙個server塊的配置檔案

#配置

[root@web01 /etc/nginx/conf.d]

# cat server1.conf

server

}[root@web01 /etc/nginx/conf.d]

# cat server2.conf

server

}[root@web01 /etc/nginx/conf.d]

# cat server3.conf

server

}[root@web01 /etc/nginx/conf.d]

# cat server4.conf

server

}[root@web01 /etc/nginx/conf.d]

# cat server5.conf

server

}#站點檔案

[root@web01 /etc/nginx/conf.d]

# echo linux.test.com > /code/server1/index.html

[root@web01 /etc/nginx/conf.d]

# echo *.test.com > /code/server2/index.html

[root@web01 /etc/nginx/conf.d]

# echo linux.test.* > /code/server3/index.html

[root@web01 /etc/nginx/conf.d]

# echo '~^linux\.(.*)\.com$' > /code/server4/index.html

[root@web01 /etc/nginx/conf.d]

# echo default_server > /code/server5/index.html

#配置hosts

10.0.0.7 linux.test.com

#訪問測試

壓縮配置,測試

壓縮配置,測試

python優先順序佇列 python 優先順序佇列

簡介 優先順序佇列是基於堆的,關於堆的時候可以參考文章堆,優先順序佇列就是入隊時,會分配乙個優先順序,之後出隊時,根據優先順序出列。如,入隊時 4,a 6,r 3 d 則出隊順序 6,r 4,a 3 d 優先順序佇列的python實現 class priorityqueue object def i...

Linux程序優先順序和調整優先順序

linux 是乙個多使用者 多工的作業系統,系統中通常執行著非常多的程序。但是 cpu 在乙個時鐘週期內只能運算一條指令 現在的 cpu 採用了多執行緒 多核心技術,所以在乙個時鐘週期內可以運算多條指令。但是同時運算的指令數也遠遠小於系統中的程序總數 那問題來了 誰應該先運算,誰應該後運算呢?這就需...

RTOS 優先順序翻轉與優先順序繼承

優先順序反轉,是指在使用訊號量時,可能會出現的這樣一種不合理的現象,即 高優先順序任務被低優先順序任務阻塞,導致高優先順序任務遲遲得不到排程。但其他中等優先順序的任務卻能搶到cpu資源。從現象上來看,好像是中優先順序的任務比高優先順序任務具有更高的優先權。具體來說 當高優先順序任務正等待訊號量 此訊...