Nginx基于域名區(qū)分的多網(wǎng)站部署
生產(chǎn)環(huán)境幾乎總是選擇“基于域名區(qū)分 + 統(tǒng)一使用 80/443 端口”。來(lái)實(shí)現(xiàn)多網(wǎng)站部署
下面我從“為什么”、“兩者可以同時(shí)使用”、“為什么 80/443 是標(biāo)準(zhǔn)”三個(gè)角度詳細(xì)拆解。
一、總結(jié)結(jié)論
| 方式 | 端口 | 域名 | 好壞 |
|---|---|---|---|
| 基于域名 | 統(tǒng)一 80/443 | 多個(gè)域名 | ? 生產(chǎn)首選 |
| 基于端口 | 不同端口 | 一個(gè) IP | ? 不方便、非標(biāo) |
| 基于端口 + 域名 | 不同端口 | 多個(gè)域名 | ? 特殊場(chǎng)景可用 |
二、“基于域名區(qū)分”為什么比“基于端口”更好?
基于域名(推薦)
# 網(wǎng)站1
server {
listen 80;
server_name rent.example.com;
root /opt/rentalhousing;
}
# 網(wǎng)站2
server {
listen 80;
server_name blog.example.com;
root /var/www/blog;
}用戶訪問(wèn):
http://rent.example.com ? http://blog.example.com ?
特點(diǎn):
- 用戶不用記端口
- 可配 HTTPS(一個(gè)證書或不同證書)
- 符合 Web 標(biāo)準(zhǔn)
- 可無(wú)限擴(kuò)展
基于端口(不推薦生產(chǎn))
# 網(wǎng)站1
server {
listen 8080;
server_name _;
root /opt/rentalhousing;
}
# 網(wǎng)站2
server {
listen 8081;
server_name _;
root /var/www/blog;
}
用戶訪問(wèn):
http://你的IP:8080 ? 用戶必須記端口 http://你的IP:8081
問(wèn)題:
- 體驗(yàn)極差
- 無(wú)法使用 HTTPS(端口混亂)
- SEO / 分享鏈接難看
- 瀏覽器 / 防火墻 / 代理容易出問(wèn)題
三、端口區(qū)分 + 域名可以同時(shí)用嗎?
可以,但幾乎不會(huì)這么用。
示例:
# 同一個(gè)域名通過(guò)不同端口訪問(wèn)不同應(yīng)用
server {
listen 80;
server_name rent.example.com;
root /opt/rentalhousing;
}
server {
listen 8080;
server_name rent.example.com;
root /var/www/legacy;
}
問(wèn)題:
- 用戶訪問(wèn)
http://rent.example.com:8080 - 既不優(yōu)雅、也不方便
- 不如直接用不同域名或不同路徑
結(jié)論:技術(shù)上可行,實(shí)踐中不推薦
四、為什么 80 / 443 端口這么特殊?
| 原因 | 說(shuō)明 |
|---|---|
| Web 標(biāo)準(zhǔn) | 瀏覽器默認(rèn)請(qǐng)求 80(HTTP) / 443(HTTPS) |
| 用戶無(wú)感 | 不需要輸入 :3000、:8080 |
| HTTPS 統(tǒng)一 | 證書、HSTS 都基于 80/443 |
| 防火墻友好 | 幾乎所有網(wǎng)絡(luò)都放開(kāi) 80/443 |
五、真實(shí)生產(chǎn)場(chǎng)景的對(duì)比(非常重要)
假設(shè)你有兩個(gè)網(wǎng)站:
- 系統(tǒng):rent.com
- 博客:blog.com
錯(cuò)誤錯(cuò)誤方案(端口區(qū)分)
rent.com → 80 blog.com → 8080
用戶訪問(wèn):
http://rent.com ? http://blog.com:8080 ?
沒(méi)有人愿意訪問(wèn) blog.com:8080
正確標(biāo)準(zhǔn)方案(域名區(qū)分)
rent.com → 80/443 blog.com → 80/443
用戶:
http://rent.com http://blog.com
完美
六、什么時(shí)候應(yīng)該用“端口區(qū)分”?
| 場(chǎng)景 | 是否合理 |
|---|---|
| 開(kāi)發(fā) / 測(cè)試環(huán)境 | ? 非常常用 |
| 內(nèi)部管理后臺(tái) | ? 可接受 |
| 同一個(gè) IP / 臨時(shí)服務(wù) | ? 可以 |
| 對(duì)外生產(chǎn)服務(wù) | ? 極其不推薦 |
示例(合理使用端口):
server {
listen 80;
server_name rent.example.com;
root /opt/rentalhousing;
}
server {
listen 3000;
server_name rent.example.com;
root /opt/rentalhousing/admin;
}
但更推薦用:
location /admin {
...
}
七、一句話極簡(jiǎn)總結(jié)
域名負(fù)責(zé)“你是誰(shuí)”,端口負(fù)責(zé)“怎么連”。
生產(chǎn)環(huán)境:用域名 + 標(biāo)準(zhǔn)端口 80/443
實(shí)驗(yàn)環(huán)境:臨時(shí)用端口沒(méi)問(wèn)題
以上就是Nginx基于域名區(qū)分的多網(wǎng)站部署的詳細(xì)內(nèi)容,更多關(guān)于Nginx多網(wǎng)站部署的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Nginx rewrite跳轉(zhuǎn)應(yīng)用場(chǎng)景詳解
這篇文章主要介紹了Nginx rewrite跳轉(zhuǎn)應(yīng)用場(chǎng)景詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
如何利用nginx通過(guò)正則攔截指定url請(qǐng)求詳解
這篇文章主要介紹了如何利用nginx通過(guò)正則攔截指定url請(qǐng)求的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
nginx對(duì)http請(qǐng)求處理的各個(gè)階段詳析
這篇文章主要給大家介紹了關(guān)于nginx對(duì)http請(qǐng)求處理的各個(gè)階段分析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
nginx反向代理配置400,404,502等狀態(tài)的自定義頁(yè)面問(wèn)題
這篇文章主要介紹了nginx反向代理配置400,404,502等狀態(tài)的自定義頁(yè)面問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Nginx啟動(dòng)時(shí)80端口被占用的問(wèn)題解決
本文主要介紹了在啟動(dòng)Nginx時(shí)遇到80端口被占用的問(wèn)題及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
nginx禁止dedecms目錄php執(zhí)行權(quán)限
nginx禁止dedecms目錄php執(zhí)行權(quán)限,找到配置fastcgi.conf文件,一般在/usr/local/nginx/conf/下面,修改如下2014-01-01

