nginx反向代理先後端分離項目(後端多臺)

目前軟件架構都比較流行先後端分離,先後端的分離也實現了先後端架構的分離,帶來的好處 —— 整個項目的開發權重往前移,實現真正的先後端解耦,動態資源和靜態資源分離,提升了性能和擴展性。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共享。

相關文章
相關標籤/搜索