
引言
在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,高性能和可擴(kuò)展性是至關(guān)重要的。Nginx作為一款高性能的Web服務(wù)器和反向代理服務(wù)器,被廣泛應(yīng)用于各種規(guī)模的網(wǎng)站和應(yīng)用程序中。本文將深入探討Nginx的負(fù)載均衡和動靜分離的原理與實(shí)踐,幫助讀者更好地理解和應(yīng)用這些功能。
一、Nginx簡介
Nginx是一款輕量級的高性能Web服務(wù)器和反向代理服務(wù)器,由俄羅斯的工程師Igor Sysoev開發(fā)。它采用事件驅(qū)動的異步非阻塞架構(gòu),能夠處理大量并發(fā)連接,具有出色的性能和穩(wěn)定性。本節(jié)將介紹Nginx的基本概念、特點(diǎn)和安裝配置方法。
- 負(fù)載均衡
- 動靜分離
1. Nginx的基本概念
Nginx采用模塊化的設(shè)計(jì),核心模塊負(fù)責(zé)處理HTTP請求和響應(yīng),而其他模塊則提供了豐富的功能擴(kuò)展,如負(fù)載均衡、動靜分離、反向代理等。在理解Nginx的負(fù)載均衡和動靜分離之前,我們需要了解一些基本概念,如虛擬主機(jī)、反向代理和上游服務(wù)器等。
2. Nginx的特點(diǎn)
Nginx具有以下幾個(gè)顯著的特點(diǎn):
- 高性能:采用異步非阻塞的事件驅(qū)動模型,能夠處理大量并發(fā)連接,適用于高負(fù)載的場景。
- 輕量級:占用系統(tǒng)資源少,啟動速度快,適合部署在資源有限的環(huán)境中。
- 可擴(kuò)展性:支持模塊化設(shè)計(jì),可以根據(jù)需求選擇性地加載和配置各種功能模塊。
- 穩(wěn)定性:經(jīng)過多年的生產(chǎn)環(huán)境驗(yàn)證,穩(wěn)定性得到了廣泛認(rèn)可。
3. Nginx的安裝配置
-
去到Nginx壓縮包目錄下, 我的是(javayh/software) 輸入(yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel)回車 下載4個(gè)依賴先
-
解壓Nginx壓縮包 輸入(tar -xvf nginx-1.13.7.tar.gz)回車 解壓Nginx
-
然后 cd nginx-1.13.7 回車進(jìn)入目標(biāo)文件
-
編譯,執(zhí)行配置: 考慮到后續(xù)安裝ssl證書 添加兩個(gè)模塊,輸入(./configure --with-http_stub_status_module --with-http_ssl_module)回車
-
安裝 輸入(make && make install)回車
-
然后下一步如圖所示
-
然后cd sbin/ 回車進(jìn)入sbin 然后輸入./nginx回車啟動
-
然后下載一個(gè)lsof 輸入(yum install -y lsof)回車
-
輸入(lsof -i:80)回車查看
-
設(shè)置防火墻開放 80 端口
輸入(firewall-cmd --zone=public --add-port=80/tcp --permanent)回車開放
輸入( firewall-cmd --reload && firewall-cmd --list-port )回車刷新并展示
能訪問此時(shí)Nginx服務(wù)就啟動成功了
二、Nginx搭載負(fù)載均衡
負(fù)載均衡是指將請求分發(fā)到多個(gè)服務(wù)器上,以達(dá)到提高系統(tǒng)性能和可用性的目的。Nginx作為一款高性能的反向代理服務(wù)器,具備強(qiáng)大的負(fù)載均衡功能。本節(jié)將介紹Nginx的負(fù)載均衡原理和常用的負(fù)載均衡算法,并結(jié)合實(shí)例演示如何配置和使用Nginx進(jìn)行負(fù)載均衡。
繼上面十步后實(shí)現(xiàn)負(fù)載均衡
-
首先防火墻需要再開端口
輸入(firewall-cmd --zone=public --add-port=8081/tcp --permanent)回車開放
輸入( firewall-cmd --reload && firewall-cmd --list-port )回車刷新并展示
此時(shí)就有三個(gè)端口了 -
這一步是我要刪除我Tomcat之前所存在的項(xiàng)目
-
然后回到software文件下面,輸入(cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/)回車就會多一個(gè)Tomcat服務(wù)器
-
然后該新的Tomcat的端口配置,如下進(jìn)入目錄
回車進(jìn)入后把所有的端口號都改一下,改為之后退出
為了方便區(qū)別,我把(/javayh/software/apache-tomcat-8.5.20_8081/webapps/ROOT/)中的index界面改了,在遠(yuǎn)程連接上改的,也可以自己手動改 -
然后把兩個(gè)Tomcat服務(wù)啟動
現(xiàn)在先去訪問看能不能成功
這邊可以看到兩個(gè)都啟動成功了 -
下一步要負(fù)載Tomcat,根據(jù)以下操作進(jìn)入目標(biāo)目錄找到這個(gè)配置文件
-
然后進(jìn)入nginx.conf編輯配置,以下是我編輯的兩個(gè)地方
#服務(wù)器的集群
upstream tomcat_list { #服務(wù)器集群名字
server 127.0.0.1:8080 weight=1; #服務(wù)器1 weight是權(quán)重的意思,權(quán)重越大,分配的概率越大。
server 127.0.0.1:8081 weight=3; #服務(wù)器2 weight是權(quán)重的意思,權(quán)重越大,分配的概率越大
}
location / {
#root html;
proxy_pass http://tomcat_list;
index index.html index.htm;
}
-
然后重啟nginx進(jìn)入該目錄
然后輸入(./nginx -s reload)回車重啟
此時(shí)負(fù)載均衡就搭配完成了 -
此時(shí)在兩個(gè)Tomcat中進(jìn)行部署項(xiàng)目
部署完成后把兩個(gè)服務(wù)器重啟
有數(shù)據(jù)說明成功了
三、前端項(xiàng)目打包
- 打包前要確定項(xiàng)目能正常運(yùn)行且沒有問題
- 進(jìn)行打包前要改一下項(xiàng)目的配置
- 進(jìn)到前臺項(xiàng)目的config中的index.js中修改build中的內(nèi)容(修改的在最后一行)
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
// assetsPublicPath: '/',修改前
assetsPublicPath: './',//修改后
- 還要修改build文件夾中utils.js中的(添加一行 publicPath:‘…/…/’)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
// 解決icon路徑加載錯誤
publicPath:'../../'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
- 改好之后就去本地文件夾下找到本項(xiàng)目的下一級cmd回車后在黑窗口輸入npm run build
這樣就打包好了
這個(gè)就是打包好的前臺項(xiàng)目
四、Nginx部署前后端分離項(xiàng)目,同時(shí)實(shí)現(xiàn)負(fù)載均衡和動靜分離
-
去到/usr/local/nginx/conf/的nginx.conf里進(jìn)行編輯
-
建一個(gè)mypro文件夾
-
然后把前端所打包好的zip壓縮包拖進(jìn)去然后進(jìn)入該文件夾目錄
-
下載解壓 unzip
-
然后解壓,輸入 unzip dist.zip
此時(shí)解壓完成,現(xiàn)在部署 -
這是我編輯的nginx.conf,后面那個(gè)是添加的( location ^~/api/)
location / {
root /usr/local/mypro/dist;
#proxy_pass http://tomcat_list;
index index.html index.htm;
}
location ^~/api/ {
proxy_pass http://tomcat_list/;
}
-
然后刷新,如下進(jìn)入目標(biāo)目錄(輸入 [ ./nginx -s reload] 回車)
訪問發(fā)送請求的時(shí)候會有問題,所以 -
win+r 輸入(C:\Windows\System32\drivers\etc)回車編輯hosts 添加(192.168.238.129 localhost)
成功文章來源:http://www.zghlxwxcb.cn/news/detail-737510.html
總結(jié)
本文深入探討了Nginx的負(fù)載均衡和動靜分離的原理與實(shí)踐。通過對Nginx的基本概念、特點(diǎn)和安裝配置的介紹,讀者可以更好地理解Nginx的工作原理和使用方法。同時(shí),通過對負(fù)載均衡和動靜分離的詳細(xì)講解和實(shí)例演示,讀者可以掌握如何使用Nginx提高系統(tǒng)的性能和可擴(kuò)展性。希望本文對讀者在實(shí)際應(yīng)用中有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-737510.html
到了這里,關(guān)于“深入理解Nginx的負(fù)載均衡與動靜分離“的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!