入門Nginx之-反向代理實現二級域名轉發

簡介

前兩天遇到開設子域名的問題,也就是二級域名,所以便開始對這方面進行了解。一直以爲 www 開頭的域名就是頂級域名,那真是太天真~~以 QQ 爲例,頂級域名是 qq.com,而www.qq.com其實是二級域名,而mail.qq.com也是二級域名,與www.qq.com是同級的。

  • 需求:假設現在已有一個頂級域名abc.com,一般要求以 www 開頭作爲二級域名進行備案。服務器上運行着兩個服務:
  1. SpringBoot項目,一個主站服務,端口 443(此處是 HTTPS 默認端口);
  2. Node.js項目,一個簡單的 OCR 小屁項目,端口 8888(隨便指定的端口);
  • 目標:
  1. SpringBoot項目,訪問地址:www.abc.com
  2. Node.js項目,訪問地址:ocr.abc.com

第一步 域名雲解析,添加 A 記錄

阿里雲、騰訊雲、華爲雲等都可以進行雲解析;這裏以阿里雲、騰訊云爲例。

  • 阿里雲解析

2019-04-30-NginxAliA.png

  • 騰訊雲解析

2019-04-30-NginxTencentA.png

第二步 在 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:

  1. 文中所使用的頂級域名abc.com純屬虛構;
  2. 建議80端口(HTTP默認端口)分配給Nginx來監聽,便於實現對入站請求的統一攔截;
  3. 在雲解析添加 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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章