首頁 > 軟體

nginx設定指令之server_name的具體使用

2022-08-10 18:04:06

前言

作為nginx的http模組中的重要指令,對於使用nginx的同學來說,有必要做深入的瞭解;

server_name指令

用於設定虛擬主機服務名稱,如:127.0.0.1 、 localhost 、域名[www.baidu.com | www.jd.com]

關於 server_name 的設定方式有三種,分別是:

  • 精確匹配
  • 萬用字元匹配
  • 正規表示式匹配

精確匹配設定

server {
	listen 80;
	server_name www.baidu.com www.localhost;
}

如下:在windows原生的nginx.conf組態檔中設定了如下引數

 需要注意的是,如果是在實際的生產伺服器上面進行設定的話,域名一定是有效的,server_name可以設定多個,然後重啟nginx服務,存取下試試,可以看到通過兩種方式都可以存取到nginx;

 萬用字元模式設定

server_name 中支援萬用字元 "*", 但需要注意的是萬用字元不能出現在域名的中間,只能出現在首段或尾段
server_name localhost www.zcy.*;

如原生的nginx按照上面的設定,重啟nginx服務之後,通過瀏覽器進行存取,可以看到均可以存取到;

正規表示式設定

server_name 中可以使用正規表示式,並且使用 ~ 作為正規表示式字串的開始標記
程式碼
說明
^
匹配搜尋字串開始位置
$
匹配搜尋字串結束位置
.
匹配除換行符 n 之外的任何單個字元
跳脫字元,將下一個字元標記為特殊字元
[xyz]
字元集,與任意一個指定字元匹配
[a-z]
字元範圍,匹配指定範圍內的任何字元
w
與以下任意字元匹配 A-Z a-z 0-9 和下劃線 , 等效於 [A-Za-z0-
9_]
d
數位字元匹配,等效於 [0-9]
{n}
正好匹配 n 次
{n,}
至少匹配 n 次
{n,m}
匹配至少 n 次至多 m 次
*
零次或多次,等效於 {0,}
+
一次或多次,等效於 {1,}
零次或一次,等效於 {0,1}

實際設定案例

server_name ~^www.(w+).com$;

重啟nginx服務,瀏覽器存取上面的地址,可以看到仍然能正常存取

server_name與host匹配優先順序如下:

1、完全匹配

2、萬用字元在前的,如*.test.com

3、在後的,如www.test.*

4、正則匹配,如~^.www.test.com$

如果都不匹配

1、優先選擇listen設定項後有default或default_server的

2、找到匹配listen埠的第一個server塊

 到此這篇關於nginx設定指令之server_name的具體使用的文章就介紹到這了,更多相關nginx server_name內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com