您的位置:首頁技術文章
文章詳情頁

nginx配置指令之server_name的具體使用

瀏覽:17日期:2023-03-13 15:37:40
目錄
  • 前言
  • server_name指令
  • 精確匹配配置
  • 通配符模式配置
  • 正則表達式配置
    • server_name與host匹配優先級如下:
    • 如果都不匹配

前言

作為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內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Nginx
相關文章:
国产综合久久一区二区三区