一、Nginx簡(jiǎn)介
Nginx是一款高性能的開(kāi)源Web服務(wù)器和反向代理服務(wù)器。它由俄羅斯的程序設(shè)計(jì)師Igor Sysoev創(chuàng)建,旨在解決傳統(tǒng)Web服務(wù)器的性能限制問(wèn)題。
Nginx采用事件驅(qū)動(dòng)的架構(gòu)和異步非阻塞的處理方式,使其能夠處理大量并發(fā)連接,并具備良好的性能表現(xiàn)。它能夠處理靜態(tài)文件、索引文件以及反向代理等功能,同時(shí)也支持HTTP、HTTPS、SMTP、POP3和IMAP等協(xié)議。
Nginx的特點(diǎn)包括:
- 高性能:Nginx使用異步非阻塞的事件驅(qū)動(dòng)模型,可以更有效地處理并發(fā)請(qǐng)求,提供快速響應(yīng)和高吞吐量。
- 輕量級(jí):Nginx的代碼量相對(duì)較少,占用系統(tǒng)資源少,啟動(dòng)速度快,適合用于低配置的服務(wù)器。
- 可擴(kuò)展性:Nginx支持模塊化的架構(gòu),可以通過(guò)第三方模塊擴(kuò)展功能,滿(mǎn)足各種需求。
- 反向代理:Nginx可以作為反向代理服務(wù)器,將客戶(hù)端的請(qǐng)求轉(zhuǎn)發(fā)給后端的多個(gè)服務(wù)器,并根據(jù)配置進(jìn)行負(fù)載均衡,提高系統(tǒng)的穩(wěn)定性和可靠性。
- 高可靠性:Nginx具備優(yōu)秀的容錯(cuò)能力,可以在大量并發(fā)請(qǐng)求中保持穩(wěn)定的性能。
- 簡(jiǎn)單配置:Nginx的配置文件簡(jiǎn)潔明了,易于理解和管理。
由于其出色的性能和功能特點(diǎn),Nginx被廣泛應(yīng)用于各種場(chǎng)景,如靜態(tài)文件服務(wù)、動(dòng)態(tài)Web應(yīng)用服務(wù)、負(fù)載均衡、反向代理、緩存加速等。它已經(jīng)成為互聯(lián)網(wǎng)架構(gòu)中重要的組件之一,并得到了全球范圍內(nèi)的廣泛使用。
二、Nginx負(fù)載均衡
2.1 Nginx的安裝
解壓服務(wù)器中的nginx,我這里之前就下載好了,這里就不做演示了,具體如何將直接下載好的傳輸?shù)椒?wù)器上可以查看我的上一篇文章
在解壓后的nginx目錄中,下載四個(gè)所需要的依賴(lài)
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
用于編譯和安裝 考慮到后續(xù)安裝ssl證書(shū) 添加兩個(gè)模塊?
./configure --with-http_stub_status_module --with-http_ssl_module
make && make install
make
:這個(gè)命令用于編譯軟件。它會(huì)根據(jù)configure
命令生成的配置文件來(lái)構(gòu)建可執(zhí)行文件。
make install
:這個(gè)命令用于安裝編譯好的軟件。它會(huì)將生成的可執(zhí)行文件、配置文件和其他必要的文件復(fù)制到相應(yīng)的目錄中,以便你可以使用該軟件。
?
進(jìn)入編譯好的nginx目錄
安裝好的 nginx 服務(wù)在 /usr/local/nginx 下:
進(jìn)入 /usr/local/nginx/sbin 目錄下啟動(dòng):
# 啟動(dòng)
./nginx# 重啟
./nginx -s reload# 關(guān)閉
./nginx -s stop
啟動(dòng)?
?
?如何查看nginx是否被啟動(dòng)了呢
下載插件
yum install lsof
執(zhí)行命令:lsof -i:80
?
在配置負(fù)載均衡前我們看一下我們的端口是否被放開(kāi),并且開(kāi)放端口號(hào)為我們準(zhǔn)備服務(wù)器做準(zhǔn)備
?開(kāi)放端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
查看端口命令:?firewall-cmd --reload && firewall-cmd --list-port
2.2 Nginx配置服務(wù)器負(fù)載均衡
什么是服務(wù)器負(fù)載均衡?
以新浪微博為例子,當(dāng)某個(gè)明星除了某些大瓜,微博可能就會(huì)因?yàn)橛脩?hù)的訪問(wèn)量,請(qǐng)求次數(shù)過(guò)多而導(dǎo)致服務(wù)器崩潰,如果只有一個(gè)服務(wù)器,那么就會(huì)導(dǎo)致整個(gè)網(wǎng)站癱瘓,所以為了防止這種情況,我們就可以搭建一個(gè)服務(wù)器集群,當(dāng)其中的一個(gè)服務(wù)器崩潰之后,還有備用服務(wù)器可以使用,這樣就大大提高了我們網(wǎng)站的穩(wěn)定性和高并發(fā)性,并且Nginx的作用不只這些,在我們更新服務(wù)器靜態(tài)資源時(shí)我們?nèi)绻诜?wù)器集群中一個(gè)一個(gè)配置過(guò)于麻煩,這時(shí)我們可以在集群中配置一個(gè)靜態(tài)資源服務(wù)器,在更新資源時(shí)我們只需要更新靜態(tài)資源服務(wù)器即可
在配置服務(wù)器集群之前,我們需要準(zhǔn)備兩個(gè)服務(wù)器用來(lái)模擬,端口號(hào)分別為8081、8082
?這里服務(wù)器我已經(jīng)更改過(guò)了,在哪里更改可以查看我的上一篇文章
為了區(qū)分,我們?cè)诜?wù)器下的webapps/root/index中做個(gè)標(biāo)識(shí)
啟動(dòng)兩臺(tái)服務(wù)器
接下來(lái)我們到編譯好的nginx目錄下創(chuàng)建服務(wù)器集群
記住一定是/usr/local/nginx/conf/nginx.conf
將集群作為放入nginx代理?
重啟nginx
nginx -s reload?
訪問(wèn)IP測(cè)試
?此時(shí)我們可以關(guān)閉一臺(tái)服務(wù)器來(lái)模擬服務(wù)器崩潰
再次訪問(wèn)ip依然可以發(fā)現(xiàn)我們的服務(wù)器還是可以訪問(wèn),這就是負(fù)載均衡,強(qiáng)大的Nginx?
三、前端項(xiàng)目打包部署
我們已經(jīng)知道后端maven打包項(xiàng)目的命令了,今天我們來(lái)打包前端的項(xiàng)目
在打包項(xiàng)目之前我們要修改兩個(gè)地方
將項(xiàng)目目錄下的config文件夾里的index.js文件中,將build對(duì)象下的assetsPublicPath中的“/”,改為“./”
問(wèn)題:使用vue-cli3腳手架搭建的項(xiàng)目,在打包文件上服務(wù)器的時(shí)候,其他的css,js樣式都能正確加載出路徑,
但是element的icon圖標(biāo)卻不能正常加載出來(lái)。問(wèn)題分析:
加載的路徑https://yxq.linksign.cn/static/css/static/fonts/element-icons.535877f.woff
本應(yīng)該加載的路徑https://yxq.linksign.cn/static/fonts/element-icons.535877f.woff
打包的路徑
事實(shí)上是打包時(shí)候讀取的文件路徑多了兩層;
找到build文件的utils.js 中有打包的路徑,看看generateLoaders();
Extract CSS when that option is specified, 指定該選項(xiàng)時(shí)提取CSS
發(fā)現(xiàn)少了個(gè)公共路徑,加上pubilcPath
if (options.extract) {
? ? ?return ExtractTextPlugin.extract({
? ? ? ?use: loaders,
? ? ? ?fallback: 'vue-style-loader',
? ? ? ?// 解決icon路徑加載錯(cuò)誤
? ? ? ?publicPath:'../../'
? ? ?})
? ?} else {
? ? ?return ['vue-style-loader'].concat(loaders)
? ?}
?在本地測(cè)試項(xiàng)目后打包 npm run build
?打包后會(huì)在項(xiàng)目的目錄下生成一個(gè)dist目錄,將其壓縮
在遠(yuǎn)程服務(wù)器中的usr/local目錄下創(chuàng)建一個(gè)存放前端項(xiàng)目的文件、
將壓縮包放入,并且解壓
下載解壓zip的插件? ?yum install -y unzip
?解壓命令 unzip 解壓文件名
?
在編譯后的Nginx中更改Nginx配置文件用來(lái)導(dǎo)航路由到前端界面,并且重新配置服務(wù)器代理用來(lái)區(qū)分后端請(qǐng)求,因?yàn)楹蠖说恼?qǐng)求都帶了api,所以我們用正則來(lái)驗(yàn)證即可
接下來(lái)我們來(lái)訪問(wèn)前端項(xiàng)目,就會(huì)直接訪問(wèn)到前端項(xiàng)目中的主頁(yè)面
但是此時(shí)我們就能用了嘛,也許可以,但是如果有兄弟們的請(qǐng)求是以域名而不是ip為主的話便不行?
四、配置域名與ip的映射關(guān)系
有的兄弟們買(mǎi)了域名的,請(qǐng)求的地址就會(huì)如下
http://www.zking.com/api/T216_SSH
但是如果沒(méi)有配置域名和ip的映射關(guān)系就會(huì)出現(xiàn)如下錯(cuò)誤
?這個(gè)時(shí)候我們就需要在測(cè)試項(xiàng)目C:\Windows\System32\drivers\etc\hosts中配置映射關(guān)系
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-738111.html
centos7中虛擬域名設(shè)置
vim /etc/hosts文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-738111.html
到了這里,關(guān)于Nginx負(fù)載均衡 以及Linux前后端項(xiàng)目部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!