簡介
前兩天遇到開設子域名的問題,也就是二級域名,所以便開始對這方面進行了解。一直以爲 www 開頭的域名就是頂級域名,那真是太天真~~以 QQ 爲例,頂級域名是 qq.com,而www.qq.com
其實是二級域名,而mail.qq.com
也是二級域名,與www.qq.com
是同級的。
- 需求:假設現在已有一個頂級域名
abc.com
,一般要求以 www 開頭作爲二級域名進行備案。服務器上運行着兩個服務:
SpringBoot
項目,一個主站服務,端口 443(此處是 HTTPS 默認端口);Node.js
項目,一個簡單的 OCR 小屁項目,端口 8888(隨便指定的端口);
- 目標:
SpringBoot
項目,訪問地址:www.abc.com;Node.js
項目,訪問地址:ocr.abc.com;
第一步 域名雲解析,添加 A 記錄
阿里雲、騰訊雲、華爲雲等都可以進行雲解析;這裏以阿里雲、騰訊云爲例。
- 阿里雲解析
- 騰訊雲解析
第二步 在 Nginx 中完成反向代理配置
- 編輯 Nginx 配置文件,在 nginx.conf 文件中新增
server
節點如下(通過vi /etc/nginx/nginx.conf
修改)
server {
listen 80;
server_name www.abc.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass https://127.0.0.1:443;
}
}
server {
listen 80;
server_name ocr.abc.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8888;
}
}
第三步 驗證二級域名
切記,驗證之前先要使用nginx -s reload
刷新 Nginx 配置。
- 訪問
www.abc.com
,實現對SpringBoot
主站項目的訪問; - 訪問地址:
ocr.abc.com
,實現對Node.js
其他項目的訪問;
Notes:
- 文中所使用的頂級域名
abc.com
純屬虛構; - 建議80端口(HTTP默認端口)分配給Nginx來監聽,便於實現對入站請求的統一攔截;
- 在雲解析添加 A 記錄後,可能需要等幾分鐘,添加的二級域名解析纔會生效,一般爲 10 分鐘左右;
至此,基於 Nginx 的反向代理,實現了二級域名的轉發,下一篇再去了解下Nginx負載均衡
。
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!