填坑日記8 Nginx 部署 負載均衡 快取

2021-10-07 02:48:42 字數 2376 閱讀 7906

搞完日記7:http的session相關資訊後,又去翻了翻http/https/http2的相關的內容,另外寫了兩篇文章。

現在回到繼續填坑的過程中來。

前面已經完成了乙個開發的基本流程,接下來,我需要把這樣乙個東西打包然後再發布到一台伺服器上提供服務。開發模式下我們用的npm start對應的命令是:

"start": "npm run dev",
這個是啟動webpack-dev-server工具的http伺服器進行除錯工作,真正部署到伺服器上肯定不能用這個玩意。我選擇的是nginx做web伺服器。

執行:

npm run build
對應的指令碼為:

"build": "node build/build.js"
再看下build/build.js檔案:

webpack(webpackconfig, (err, stats) =>
就是用webpack進行打包操作。這個webpack相關的內容後續再寫blog記錄,先看看打包的結果:

生成了乙個dist目錄:

把專案裡的所有js/css/img等靜態資源全部打包好了。直接把這個放到web伺服器(容器)中就可以提供服務了。

nginx可以起到下面幾個作用

tar zxvf nginx-1.16.1.tar.gz

configure之前,先安裝幾個依賴庫。

apt-get install libpcre3 libpcre3-dev  

apt-get install zlib1g-dev

openssl一般有,就不記錄了,安裝openssl的教程也挺多的。

進入目錄,./configure --prefix = /tools。不設定的話就安裝在/usr/local/下面。我沒有設定,測試用的。

make

make install

搞定。cd /usrlocal/nginx

vim conf/nginx.conf

修改location:

location /
將剛才打包的dist資料夾複製到/usr/local/nginx下

執行sbin/nginx即可,也可以先執行sbin/nginx -t來檢查下配置檔案是否ok。

nginx常用命令:

開啟瀏覽器,輸入localhost就可以看到成果了。

啟動nginx後,我們使用

ps aux |  grep nginx
來檢視:

有兩個程序:

反向**一般來說是為了實現負載均衡:

我準備了兩台機器:

上面的反向**應用的場景是負載均衡,比如每台伺服器分擔整個web應用的一部分。/data在server1,/image在server2,通過反向**可以實現。

那麼,當某一部分應用非常重要的時候,比如/data,我們想用兩台伺服器server1和server2同時為/data服務,如果其中的某一台server掛掉了,另外一台server還是可以對外提供服務(資料同步是另外的乙個話題,不在這裡討論,這裡只討論請求能響應)。但是server1和server2是兩個不同的ip:sip1,sip2。而對客戶端提供的介面位址只能有乙個(使用者不能根據你的負載和宕機情況來手動調整ip的輸入,那也太不友好了),這是我們對外提供的訪問ip一般就是vip:visual ip,虛擬ip。

對於實現基於虛擬ip的高可用,可以採用nginx + keepalive的組合還解決。

keepalived高可用服務對之間的故障切換轉移,是通過vrrp (virtual router redundancy protocol,虛擬路由冗餘協議) 來實現的。在keepalived服務工作時,主master節點會不斷地向備節點傳送(多播的方式)心跳訊息,用來告訴備backup節點自己還活著。當主節點發生故障時,就無法傳送心跳的訊息了,備節點也因此無法繼續檢測到來自主節點的心跳了。於是就會呼叫自身的接管程式,接管主節點的ip資源和服務。當主節點恢復時,備節點又會釋放主節點故障時自身接管的ip資源和服務,恢復到原來的備用角色。

停掉主節點,再使用curl來訪問,訪問的就是從節點的內容了:

暫時沒有想到使用的場景,先搬運一篇文章放在這裡。後續有用到的地方再說:

nginx 快取

nginx部署填坑

知曉是nginx.conf,但是自己寫有可能有語法錯誤,用nginx t 去測試 有問題 location 定義時 root和alias有區別,root是直接拼接位址,alias則是取別名 用nginx獲取靜態資源時記得chmod 777 有時候 v 多個會發現容器啟動後立即stop,是因為 v掛載...

nginx部署多個tomcat實現負載均衡

使用ningx部署,可以實現多個tomcat的作為乙個整體服務後台服務,同時保證啟動 關閉服務不影響線上正常使用 1 nginx的部署在session一致性上,使用redis的jar com.radiadesign.catalina.session.redissessionmanager 實現tom...

docker部署nginx教程,配置負載均衡

docker pull nginx docker run name mynginx p 80 80 itd nginx run 建立容器例項 name 容器命名 v 對映目錄 d 設定容器後台執行 p 本機埠對映 將容器的80埠對映到本機的80埠 語句最後乙個nginx是使用映象的名稱 建立容器成功...