记录一次nginx配置vhost的小bug
話說這篇博客是在是為了保持自己記錄生活的習慣而寫的,沒有什么閱讀的價值,各位讀者可以直接忽略了。今天在配置一個域名的時候,寫了new_example.com(舉例而已) 因為是內測,所以并未想象到深層次的問題,直接就運行了。但是我在本地寫host 的時候寫的卻是如下的配置:
192.168.1.188 old_example.com然后我訪問 old_example.com,正確的解析到了 new_example.com 的網站上。這一切我都沒有感覺到錯誤,直到同時提醒我,我這才發現為什么host寫錯了。但是為什么我host寫錯了,卻能解析到正確的網站地址呢。
首先我想是不是Nginx 配置的問題,如果沒有匹配到要解析的網站,會默認解析到自己第一個網站上。但是我查看Nginx的配置,并不存在這個問題。我們項目走的是微服務的模式,比如支付走的是一個服務,有一個域名,平時的活動也是服務,有一個域名,再有就是用戶體系,登錄體系等。使用的時候通過Yar 的RPC 調用來進行服務。測試環境、開發環境,域名中如果有 下劃線_ ,統一會轉化成 橫杠-
,因為自己平時并負責項目架構方面的內容所以對這塊關注過少,只是一個約定俗成的規定,大家都按照這個規范來配置測試域名。
直到遇到今天這個意外的bug,讓我學到了域名的命名規范。讓我們來看下域名的規范是怎么樣規定的:
參考地址:域名中不應出現下劃線
RFC 952 - 美國國防部互聯網主機表規范中的相關條文如下:
A "name" (Net, Host, Gateway, or Domain name) is a text string up to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus sign (-), and period (.).
下面有評論指出,Apache 并不這樣處理這個下劃線,關于Apache 和 lighttpd 我并沒有測試。這種規則,我們遵守就行了,不必浪費精力去追求。浪費時間在這些事情上面,和謀財害命沒有什么區別。評論摘抄如下:
早期有人用下劃線域名曾經出現過世界范圍的 DNS 混亂,現在應該不會出大問題了,不過還是盡量避免為好。水木有個版面域名叫 版名.board.newsmth.net,碰到有下劃線的版名 lighttpd 直接拒絕跳轉,而原來用 apache 跳轉的時候還是允許的,看來 apache 比較仁慈一點。。
轉載于:https://www.cnblogs.com/roverliang/p/8399278.html
總結
以上是生活随笔為你收集整理的记录一次nginx配置vhost的小bug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孕妇梦到堕胎什么意思
- 下一篇: js遍历 for-of