nginx反向代理前后端分離項目(后端多台)


目前軟件架構都比較流行前后端分離,前后端的分離也實現了前后端架構的分離,帶來的好處 —— 整個項目的開發權重往前移,實現真正的前后端解耦,動態資源和靜態資源分離,提高了性能和擴展性。

通常SpringBoot與vue 進行前后端分離,主要有兩種方式:

1.打包(npm run build命令)vue項目出來的dist文件夾拷貝到springboot項目的static文件目錄,部署到tomcat即可。

2.利用nginx的反向代理。

本文主要講解第二種

首先打包前端項目到指定目錄:E:\fjgh\dist

然后部署后端項目到不同的Tomcat服務器,請求地址分別是:

  http://localhost:8086/un/

  http://localhost:8087/un/

重點是nginx配置

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共享。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM