2.1 前后台分離部署
(一) 組網圖
(二) 簡要說明:
如標題所示,至於為什么要前后台分離部署,個人理解的原因有三
(一) 便於部署
前台代碼由nginx啟動,無需再做前后台集成打包,節省升級維護資源。
(二) 便於維護
由於前后台分離而不是集成在一個tomcat中運行,此時如果需要對前端代碼進行迭代部署時,僅需要對特定目錄下的前端代碼進行替換即可,無需前后台集成打包后又再次部署。節省升級維護資源。
(三) 解決跨域問題
首先我們一起理解一下什么是跨域。
當兩個地址在協議、主機或者端口不一致的時候,即判定為跨域。
如果有興趣的朋友可以查看附件鏈接查看詳解資料。
如:我在192.168.1.110上部署的前端代碼 需要向192.168.1.111的后台發送請求,此時就會出現跨域問題。
那么 nginx可以完美的解決此類問題,無論的內網跨域甚至是外網均可以正常訪問。
(三) nginx配置
#user nobody;
worker_processes 1; #開啟niginx工作進程,一般幾個CUP核心寫幾個
error_log /usr/local/nginx/logs/error.log;
events {
worker_connections 1024; #一個進程能同時處理1024個請求
}
http {
gzip on; #開啟gzip壓縮
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/plain text/css test/javascript application/json application/javascript application/x-javascript application/xml;
#設置需要壓縮的數據格式
gzip_vary on;
include mime.types;
default_type application/octet-stream;
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 http://192.168.1.60:15587; #訪問的后台
proxy_send_timeout 1800;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
client_max_body_size 2048m;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded=-Proto $scheme;
}
}
測試備份配置文件:
查看前端代碼放置路徑
(四) 本地配置域名解析便於外網訪問
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配置訪問驗證
訪問編輯/etc/hosts
內容參考windows下配置
驗證內容:略