Nginx虛擬主機多server_name的順序問題

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

Nginx配置檔案中沒有相關的rewrite跳轉規則,那麼就應該是MediaWiki的PHP程式做的跳轉,但是,遍歷了MediaWiki目錄下的所有檔案以及查詢了MySQL資料庫中的每個表,都沒有發現記錄有這個域名。後來,通過檢視原始碼發現MediaWiki是根據$_SERVER[‘SERVER_NAME’]做的跳轉,順藤摸瓜,發現了下列問題:

  在一個Nginx虛擬主機中,可以繫結多個server_name,例如:
  

  而server_name的先後順序的不同,對PHP程式中使用$_SERVER[“SERVER_NAME”]或getenv(‘SERVER_NAME’)獲取伺服器域名是有影響的:
  

  

  $_SERVER[“SERVER_NAME”]或getenv(‘SERVER_NAME’)獲取的始終將是Nginx server_name配置中的第一個域名,這一點在程式開發中需要注意。這第一個域名就相當於Apache虛擬主機配置中的ServerName,後面的域名就相當於Apache的ServerAlias。

您可能感興趣的文章:

Nginx 安裝筆記(含PHP支援、虛擬主機、反向代理負載均衡)為nginx設定預設虛擬主機(空主機頭,預設主機頭)nginx 虛擬主機設定例項(多網站配置)Nginx中虛擬主機與指定訪問路徑的設定方法講解nginx配置虛擬主機vhost的方法詳解

相關文章

伺服器 最新文章