记录一次nginx配置vhost的小bug
話說(shuō)這篇博客是在是為了保持自己記錄生活的習(xí)慣而寫的,沒(méi)有什么閱讀的價(jià)值,各位讀者可以直接忽略了。今天在配置一個(gè)域名的時(shí)候,寫了new_example.com(舉例而已) 因?yàn)槭莾?nèi)測(cè),所以并未想象到深層次的問(wèn)題,直接就運(yùn)行了。但是我在本地寫host 的時(shí)候?qū)懙膮s是如下的配置:
192.168.1.188 old_example.com然后我訪問(wèn) old_example.com,正確的解析到了 new_example.com 的網(wǎng)站上。這一切我都沒(méi)有感覺(jué)到錯(cuò)誤,直到同時(shí)提醒我,我這才發(fā)現(xiàn)為什么host寫錯(cuò)了。但是為什么我host寫錯(cuò)了,卻能解析到正確的網(wǎng)站地址呢。
首先我想是不是Nginx 配置的問(wèn)題,如果沒(méi)有匹配到要解析的網(wǎng)站,會(huì)默認(rèn)解析到自己第一個(gè)網(wǎng)站上。但是我查看Nginx的配置,并不存在這個(gè)問(wèn)題。我們項(xiàng)目走的是微服務(wù)的模式,比如支付走的是一個(gè)服務(wù),有一個(gè)域名,平時(shí)的活動(dòng)也是服務(wù),有一個(gè)域名,再有就是用戶體系,登錄體系等。使用的時(shí)候通過(guò)Yar 的RPC 調(diào)用來(lái)進(jìn)行服務(wù)。測(cè)試環(huán)境、開(kāi)發(fā)環(huán)境,域名中如果有 下劃線_ ,統(tǒng)一會(huì)轉(zhuǎn)化成 橫杠-
,因?yàn)樽约浩綍r(shí)并負(fù)責(zé)項(xiàng)目架構(gòu)方面的內(nèi)容所以對(duì)這塊關(guān)注過(guò)少,只是一個(gè)約定俗成的規(guī)定,大家都按照這個(gè)規(guī)范來(lái)配置測(cè)試域名。
直到遇到今天這個(gè)意外的bug,讓我學(xué)到了域名的命名規(guī)范。讓我們來(lái)看下域名的規(guī)范是怎么樣規(guī)定的:
參考地址:域名中不應(yīng)出現(xiàn)下劃線
RFC 952 - 美國(guó)國(guó)防部互聯(lián)網(wǎng)主機(jī)表規(guī)范中的相關(guān)條文如下:
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 (.).
下面有評(píng)論指出,Apache 并不這樣處理這個(gè)下劃線,關(guān)于Apache 和 lighttpd 我并沒(méi)有測(cè)試。這種規(guī)則,我們遵守就行了,不必浪費(fèi)精力去追求。浪費(fèi)時(shí)間在這些事情上面,和謀財(cái)害命沒(méi)有什么區(qū)別。評(píng)論摘抄如下:
早期有人用下劃線域名曾經(jīng)出現(xiàn)過(guò)世界范圍的 DNS 混亂,現(xiàn)在應(yīng)該不會(huì)出大問(wèn)題了,不過(guò)還是盡量避免為好。水木有個(gè)版面域名叫 版名.board.newsmth.net,碰到有下劃線的版名 lighttpd 直接拒絕跳轉(zhuǎn),而原來(lái)用 apache 跳轉(zhuǎn)的時(shí)候還是允許的,看來(lái) apache 比較仁慈一點(diǎn)。。
轉(zhuǎn)載于:https://www.cnblogs.com/roverliang/p/8399278.html
總結(jié)
以上是生活随笔為你收集整理的记录一次nginx配置vhost的小bug的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 孕妇梦到堕胎什么意思
- 下一篇: 梦到被蛇追是什么意思