一臺(tái)服務(wù)器支持多個(gè)域名和站點(diǎn)

轉(zhuǎn)載請注明原作者点骑,如果覺得有用,不用請我喝咖啡:D

最近數(shù)次遇到這種情況:硬件資源有限袁辈,但有些開發(fā)配置要求比較嚴(yán)苛(如在微信公眾號(hào)進(jìn)行接口配置或安全域名配置),要求80端口甚至頂級(jí)域名荞彼。但服務(wù)器的80端口早就被之前的已經(jīng)上線的應(yīng)用占掉了。

因此做了一些嘗試癌压,最終解決了訪問問題滩届。

需求

  1. 只有一臺(tái)服務(wù)器,一個(gè)IP券犁;
  2. 服務(wù)器上有多個(gè)應(yīng)用運(yùn)行在不同的端口荞估。例如:
  • 127.0.0.1:4000 運(yùn)行著一個(gè)node.js寫的博客應(yīng)用
  • 127.0.0.1:3009 運(yùn)行著一個(gè)微信公眾號(hào)機(jī)器人的后臺(tái)
  1. 希望不同的域名跪腹,都解析到該IP的80端口缅帘,但是轉(zhuǎn)發(fā)到不同的端口去:
  • www.me.com 能訪問到127.0.0.1:4000的應(yīng)用
  • 新增一個(gè)mysite.mydomain.com 能訪問到127.0.0.1:3009的微信后臺(tái)(微信要求綁定服務(wù)器時(shí)綁定的是80端口)

思路

域名都解析到該服務(wù)器的IP下钦无,通過Nginx區(qū)分主機(jī)頭失暂,從而決定請求訪問到哪個(gè)應(yīng)用。

相當(dāng)于門衛(wèi)將不同的來者領(lǐng)到不同的房間摧冀。

最終通過對Nginx的配置實(shí)現(xiàn)了需求。

目前用著沒啥問題癞志,但優(yōu)劣還待考證秉宿。

Part 1: 服務(wù)器端操作

1. 在Nginx的conf中添加upstream

指向第二個(gè)應(yīng)用的本機(jī)地址膊存。

 upstream mysvr {
      server 127.0.0.1:3009; 
    }

附上原有的第一個(gè)應(yīng)用的upstream。

upstream hodorsvr {
      server 127.0.0.1:4000; 
    }

2. 在Nginx的conf中添加二級(jí)域名主機(jī)頭80端口的偵聽

注意本例中,要新添加的解析二級(jí)域mysite.mydomain.com

  • 端口號(hào)為80
  • server_name 精確匹配到二級(jí)域名(本例中為mysite.mydomain.com钓株。其他規(guī)則或www也可以,只要與域名商處解析行為一致即可)

再給conf添加如下1個(gè)server:

server {
        listen       80;
        server_name  mysite.mydomain.com;
        location / {
            proxy_pass http://mysvr;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

添加后,有2個(gè)server奔坟,一個(gè)用來匹配www.me.com,一個(gè)用來匹配mysite.mydomain.com向挖。
附上原有的另一個(gè)server:

server {
        listen       80;
        server_name  me.com www.me.com;
        location / {
            proxy_pass http://hodorsvr;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

upstream和server都在conf中加好后,使用如下命令測試一下配置文件是否可用。以我自己的為例:

/usr/local/webserver/nginx/sbin/nginx -t

通過后,再重啟nginx辐赞。

/usr/local/webserver/nginx/sbin/nginx -s reload

先檢查一下原有的域名訪問是否一如既往。
注意測試前可清除一下DNS緩存。
如果是Mac系統(tǒng),使用如下命令:

sudo dscacheutil -flushcache

Part 2: 域名商操作

在域名商(域名在哪家買的就去哪家)處,增加新域名(二級(jí)域名)的A記錄解析到該IP位谋。

Part 3: 空間商操作

一般的服務(wù)器秆剪,解析后即可生效陶缺,不需要在空間商處做額外的動(dòng)作。

但如果域名商為西部數(shù)據(jù)且空間是國內(nèi)要備案的那種空間汤锨,則需要:

  • 為你的IP添加白名單,填寫時(shí)要求填寫頂級(jí)域名。即聂抢,你只是想為mysite.mydomain.com解析闸拿,但添加時(shí)要填寫mydomain.com;
  • 去域名商那里篱瞎,在你的域名mydomain.com下严衬,不用動(dòng)www和@的A記錄粱挡,直接增加一條mysite(你的二級(jí)域名)的CNAME解析到白名單返回給你的那一串值上嘀倒。

Part 4: 最后確認(rèn)

清除一下DNS緩存康二。
如果是Mac系統(tǒng)味混,使用如下命令:

sudo dscacheutil -flushcache

然后使用nslookup看一下你的兩個(gè)域名是否已經(jīng)指向了你這臺(tái)服務(wù)器的IP。

之后就通過不同域名訪問,看看是否導(dǎo)向了不同的應(yīng)用即可。

~ END ~

參考

受益于如下這些文章:

Nginx實(shí)現(xiàn)多個(gè)站點(diǎn)使用一個(gè)端口(配置Nginx的虛擬主機(jī))

nginx 一個(gè)端口多域名服務(wù)方案

帖子: 二級(jí)域名如何指向同一IP地址的不同端口

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陕壹,一起剝皮案震驚了整個(gè)濱河市怎憋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌癌别,老刑警劉巖圾笨,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悲敷,死亡現(xiàn)場離奇詭異唤蔗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門奏寨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事顿肺∨鬯” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵凭戴,是天一觀的道長肤视。 經(jīng)常有香客問我乐纸,道長侧戴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任稀颁,我火速辦了婚禮阶女,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寻狂。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布牡昆。 她就那樣靜靜地躺著掸刊,像睡著了一般姜贡。 火紅的嫁衣襯著肌膚如雪余耽。 梳的紋絲不亂的頭發(fā)上袱耽,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天枉长,我揣著相機(jī)與錄音,去河邊找鬼。 笑死凭需,一個(gè)胖子當(dāng)著我的面吹牛薪伏,可吹牛的內(nèi)容都是我干的借浊。 我是一名探鬼主播肖油,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搓萧!你這毒婦竟也來了杂数?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瘸洛,失蹤者是張志新(化名)和其女友劉穎揍移,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體反肋,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡那伐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罕邀。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡畅形,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诉探,到底是詐尸還是另有隱情日熬,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布肾胯,位于F島的核電站竖席,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏敬肚。R本人自食惡果不足惜毕荐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望艳馒。 院中可真熱鬧憎亚,春花似錦、人聲如沸鹰溜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽曹动。三九已至斋日,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間墓陈,已是汗流浹背恶守。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贡必,地道東北人兔港。 一個(gè)月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像仔拟,于是被迫代替她去往敵國和親衫樊。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理利花,服務(wù)發(fā)現(xiàn)科侈,斷路器,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx炒事?那么一定聽過它的“同行”Apache吧臀栈!Ngi...
    JokerW閱讀 32,692評論 24 1,002
  • DNS(Domain Name System,域名系統(tǒng))挠乳,因特網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫权薯,能...
    一直在努力hard閱讀 4,641評論 3 19
  • 名詞延伸 通俗的說,域名就相當(dāng)于一個(gè)家庭的門牌號(hào)碼屎开,別人通過這個(gè)號(hào)碼可以很容易的找到你橄仍。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,604評論 2 57
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,540評論 1 41