當請求到達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使用教程欄目進行學習!?
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END