(一) 實戰環境配置:hosts文件+nginx模擬多域名

Erma60Q 9年前發布 | 51K 次閱讀 Nginx Web服務器

來自: https://segmentfault.com/a/1190000004532670

學習前提

  • 你已經知道什么是SSO了

  • 了解域名解析流程與hosts文件的作用

  • 知道nginx代理的使用

  • 會啟動一個web應用(python、java-web、php、node.js等等)

本系列著重于SSO的實現,涉及到的技術主要以推薦閱讀呈現。如果你不懂前提提到的點,可粗略瀏覽本文后去學習下技術細節再回頭看,千萬不要似動非懂的。另外聲明,本實戰是用node.js + express4.x實現的。

hosts文件設置

我們約定如下幾個域名:

  • id.vhost.com sso系統 負責驗證登錄、注冊、修改公共用戶信息

  • music.vhost.com 音樂應用 (同域)

  • note.com 日記應用(跨域)

添加如下內容:

127.0.0.1    id.vhost.com
127.0.0.1    music.vhost.com
127.0.0.1    note.com

nginx代理設置

我們約定這三個server在127.0.0.1上的端口

  • id.vhost.com --> 127.0.0.1:3000

  • music.vhost.com --> 127.0.0.1:3001

  • note.com --> 127.0.0.1:3002

這里放一個參考配置代碼,文件id.vhost.com.conf:

  1 server {
  2     listen  80;
  3     server_name id.vhost.com;
  4     charset utf-8;
  5     access_log /var/log/nginx/id.vhost.com.log main;
  6     location / {
  7         proxy_set_header X-Real-IP $remote_addr;
  8         proxy_set_header X-Forwarded-For $proxy_add_x_forwarde    d_for;
  9         proxy_set_header Host $http_host;
 10         proxy_set_header X-NginX-Proxy true;
 11 
 12         proxy_pass http://127.0.0.1:3000;
 13     }
 14 }

其余兩個自行配置

項目初始化

使用 Express Generator 來生成項目

express -e --git id    // 我們使用ejs前端模板,同時添加.gitignore文件
express -e --git music
express -e --git note

這樣項目就生成完畢了!接下來修改啟動端口。修改每個項目的bin/www文件中的端口設置。分別為3000、3001、3002(上面已經說了)

var port = normalizePort(process.env.PORT || '3000');

然后分別啟動三個項目、以及nginx。在瀏覽器中訪問id.vhost.com、music.vhost.com、note.vhost.com。 如果都成功,配置就完成了!這樣,我們就在本地模擬出了跨域。

反饋

  • 請支出錯誤之處、不足需要補充之處好讓我進行修改!

  • 大膽說出你的疑問!

  • </ul> </div>

 本文由用戶 Erma60Q 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!