如標題所示,至於為什麼要前後臺分離部署,個人理解的原因有三
(一) 便於部署
前台**由nginx啟動,無需再做前後臺整合打包,節省公升級維護資源。
(二) 便於維護
由於前後臺分離而不是整合在乙個tomcat中執行,此時如果需要對前端**進行迭代部署時,僅需要對特定目錄下的前端**進行替換即可,無需前後臺整合打包後又再次部署。節省公升級維護資源。
(三) 解決跨域問題
首先我們一起理解一下什麼是跨域。
當兩個位址在協議、主機或者埠不一致的時候,即判定為跨域。
如:我在192.168.1.110上部署的前端** 需要向192.168.1.111的後台傳送請求,此時就會出現跨域問題。
那麼 nginx可以完美的解決此類問題,無論的內網跨域甚至是外網均可以正常訪問。
#user nobody;
worker_processes 1; #開啟niginx工作程序,一般幾個cup核心寫幾個
error_log /usr/local/nginx/logs/error.log;
events {
worker_connections 1024; #乙個程序能同時處理1024個請求
gzip on; #開啟gzip壓縮
#設定需要壓縮的資料格式
gzip_vary on;
include mime.types;
sendfile on;
keepalive_timeout 65;
types_hash_max_size 2048;
# 日誌配置
access_log /usr/local/nginx/access.log;
server {
listen 88;
server_name relaxsystem.relax.com; #注意這裡我該了下訪問網域名稱
charset utf-8;
root /usr/local/123; #前端**訪問路徑,
index index.html;
#定義index頁面
error_page 404 /index.html;
location ^~ /api/ #反向**通配所有的api介面
proxy_pass #訪問的後台
測試備份配置檔案:
檢視前端**放置路徑
a) windows配置訪問驗證
訪問c:\windows\system32\drivers\etc 下開啟hosts檔案 加入
relaxsystem027.gnway.cc relaxsystem.relax.com
上面的配置資訊可以看到,我們用的192.168.1.119的前端**向192.168.1.60的後台傳送請求。所以我們
使用postman向relaxsystem.relax.com:10388傳送請求,並檢視內網60訪問的日誌資訊。
可以看到postman傳送成功且60的日誌有相關日誌資訊,說明由119前端向60的後台傳送的請求並得到相應的回執,這裡跨域的問題就完美解決了。
b) 驗證公升級
我們一起試試60對映後的外網ip看看是不是真的實現了跨域。
路由器將192.168.1.60的15587埠對映至外網,外網埠為1060
然後修改配置檔案
將之前的內網設定改為外網訪問
重啟nignx服務
再次傳送請求
後台採用外網訪問也是ok的。
a) linux配置訪問驗證
內容參考windows下配置
驗證內容:略
nginx實現前後端分離
參考 路徑 nginx conf nginx.conf2.1 設定前端 位置location 2.2 配置後台請求攔截 後台跳轉 攔截所有前端 以 api 開始的請求 到 後端服務 http localhost 8080 backend project name api location api2....
前後臺登入模板分離
小問題 按照yii中文網搭建的登入模組中,出現了引入css檔案後無法在頁面顯示效果,由於在css檔案中標明子選擇器,在layout main.php中增加了div解決問題 1 單獨建立資料表,在backend和frontend中的models中分別建立loginform.php class admi...
前後臺分離 概念相關
js 包管理器 1 npm 2 bower 1 復用別人已經寫好的 2 管理包之間的依賴關係。js 語言,可以理解為一種規範 v8 直譯器吧,理解為 js 這門語言的具體實現 node 有直譯器還得有一票基礎的類庫吧,比如什麼內建物件啊模組啊,就好像瀏覽器有 v8 也有 bom 物件這些,node ...