如標題所示,至於爲何要先後臺分離部署,我的理解的緣由有三javascript
(一) 便於部署css
前臺代碼由nginx啓動,無需再作先後臺集成打包,節省升級維護資源。html
(二) 便於維護前端
因爲先後臺分離而不是集成在一個tomcat中運行,此時若是須要對前端代碼進行迭代部署時,僅須要對特定目錄下的前端代碼進行替換便可,無需先後臺集成打包後又再次部署。節省升級維護資源。java
(三) 解決跨域問題nginx
首先咱們一塊兒理解一下什麼是跨域。json
當兩個地址在協議、主機或者端口不一致的時候,即斷定爲跨域。windows
若是有興趣的朋友能夠查看附件連接查看詳解資料。api
如:我在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個請求
}
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;
}
}
測試備份配置文件:
查看前端代碼放置路徑
訪問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的後臺發送的請求並獲得相應的回執,這裏跨域的問題就完美解決了。
咱們一塊兒試試60映射後的外網IP看看是否是真的實現了跨域。
路由器將192.168.1.60的15587端口映射至外網,外網端口爲1060
而後修改配置文件
將以前的內網設置改成外網訪問
重啓nignx服務
再次發送請求
後臺採用外網訪問也是OK的。
訪問編輯/etc/hosts
內容參考windows下配置
驗證內容:略