當請求到達nginx伺服器之時
#如果我們設定檔如下:
server { listen 80; server_name example.org www.example.org; ... } server { listen 80; server_name example.net www.example.net; ... } server { listen 80; server_name example.com www.example.com; ... }
1.nginx首先會根據請求資訊中的Host進行匹配server_name,選擇對應的server
2.如果請求中Host欄位沒有網域形式(即ip形式的存取網站,如:輸入127.0.0.1 訪問),那麼nginx預設選擇第一個server
3.也可以在listen加入default_server 標示預設虛擬服務 (listen 80 default_server ),那麼如果找不到server_name ,ngnix會預設選取這個server
如果想符合不到server_name 後回傳錯誤訊息,可加入如下server設定
server { listen 80; server_name ''; return '404' }
#也一種配置如下listen 為ip:port
server { listen 192.168.0.1:80 server_name example.org *.example.org ... } server { listen 192.168.0.1:80 server_name example.net *.example.net ... } server { listen 192.168.0.2:80 server_name example.com *.example.com ... }
那麼nginx會先選擇匹配listen一致的,然後再根據Host來匹配server_name,如果匹配不到,可以進行如上默認設置
更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!
以上是nginx如何處理請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!