目前軟件架構都比較流行先後端分離,先後端的分離也實現了先後端架構的分離,帶來的好處 —— 整個項目的開發權重往前移,實現真正的先後端解耦,動態資源和靜態資源分離,提升了性能和擴展性。javascript
一般SpringBoot與vue 進行先後端分離,主要有兩種方式:css
1.打包(npm run build命令)vue項目出來的dist文件夾拷貝到springboot項目的static文件目錄,部署到tomcat便可。html
2.利用nginx的反向代理。前端
本文主要講解第二種vue
首先打包前端項目到指定目錄:E:\fjgh\distjava
而後部署後端項目到不一樣的Tomcat服務器,請求地址分別是:mysql
http://localhost:8086/un/nginx
http://localhost:8087/un/web
重點是nginx配置redis
1.在配置文件http模塊添加後端服務負載均衡策略配置,經常使用有三種策略,本例使用默認輪詢
#負載均衡配置:輪詢(默認) 指定權重 IP綁定; upstream fjghmultiple{ server localhost:8086; server localhost:8087; }
2.添加server配置
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; root E:\fjgh\dist ;#vue項目的打包後的dist index index.html index.htm; #開啓gzip壓縮,下降傳輸流量,減小響應時間 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml application/json ; gzip_vary on; } location /un/ { #代理後端服務 proxy_pass http://fjghmultiple/un/; } }
3.經過start nginx 命令啓動nignx 訪問地址 http://localhost 便可
補充:多個後臺須要考慮用戶登陸狀態同步的問題,咱們使用的是經過spring-session實現session共享:當web服務器接收到http請求後,請求進入到對應的Filter進行過濾,原表須要由web服務器建立會話的過程轉交給spring-session進行建立,原本建立的會話保持在web服務器內存中,經過spring-session建立的會話信息能夠保存在第三方的服務中,好比:redis,mysql等。各個web服務器之間經過鏈接第三方服務來共享數據,實現session共享。