上海網(wǎng)站建設(shè)網(wǎng)頁制作邢臺(tái)備案查詢網(wǎng)
首先介紹一下為什么需要nginx?
在低并發(fā)場景下(也就是用戶量特別少的情況下),我們只需要部署一臺(tái)服務(wù)器就能滿足用戶數(shù)量少的需求。
但是如果用戶量逐漸增多,只有一臺(tái)服務(wù)器是不夠的。于是我們需要部署多臺(tái)服務(wù)器。
可能有幾個(gè)項(xiàng)目啟動(dòng)在不同的服務(wù)器上,當(dāng)用戶需要訪問,我們需要一臺(tái)代理服務(wù)器來處理這些請(qǐng)求并轉(zhuǎn)發(fā)到各個(gè)服務(wù)器上。
于是就有了nginx。來當(dāng)這個(gè)代理服務(wù)器。
nginx的特點(diǎn):
是一個(gè)高性能HTTP和反向代理web服務(wù)器,內(nèi)存少,并發(fā)能力強(qiáng)。
nginx的幾個(gè)最重要的作用:
一、反向代理:
反向代理的意思是:用代理服務(wù)器來接收網(wǎng)絡(luò)請(qǐng)求,然后把請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)網(wǎng)中的服務(wù)器,并將從內(nèi)網(wǎng)服務(wù)器得到的結(jié)果返回給網(wǎng)絡(luò)請(qǐng)求的客戶端。
正向代理和反向代理的區(qū)別:
正向代理:發(fā)生在客戶端,由用戶主動(dòng)。比如翻墻軟件,用戶主動(dòng)去訪問代理服務(wù)器,讓代理服務(wù)器去找外網(wǎng)資源,然后把結(jié)果返回給客戶端。
反向代理:發(fā)生在服務(wù)端,用戶不知道代理服務(wù)器的存在。
舉個(gè)例子:
下圖是前端請(qǐng)求地址,端口為81:
后端的地址如下,應(yīng)該是http://localhost:8080/admin/employee/login
那么前端的請(qǐng)求的地址和后端接口地址不一致是如何請(qǐng)求成功的??
原理:nginx反向代理,將前端發(fā)送的請(qǐng)求由nginx轉(zhuǎn)發(fā)到后端服務(wù)器。
?下圖是nginx的配置文件,它監(jiān)聽的是81端口,服務(wù)器名是本地(http://localhost:81)。如果匹配到api字符串(http://localhost:81/api),就轉(zhuǎn)發(fā)到proxy_pass對(duì)應(yīng)的地址(http://localhost:8080/admin)。如果后面還有字符串就拼接到目標(biāo)地址后面(http://localhost:8080/admin/employee/login)。
二、負(fù)載均衡:
負(fù)載均衡是為了盡可能的將網(wǎng)絡(luò)請(qǐng)求平均分配到各個(gè)服務(wù)器上,以提高系統(tǒng)的整體性能和速度。
nginx的三種負(fù)載均衡策略:輪詢,加權(quán)輪詢,Ip_hash。
1、輪詢(默認(rèn)):輪流分配
2、加權(quán)輪詢:weight代表權(quán)重,默認(rèn)值為1,值越大代表被分配到的請(qǐng)求越多。
3、Ip_hash:每個(gè)請(qǐng)求按訪問Ip的hash結(jié)果分配,這樣每一個(gè)訪客就固定訪問
三、動(dòng)靜分離:
在軟件開發(fā)中,有些請(qǐng)求是需要后臺(tái)處理的,成為動(dòng)態(tài)文件,相反,不需要后臺(tái)處理的稱為靜態(tài)文件(比如css ,js,html等文件)。
動(dòng)靜分離的意思是將動(dòng)態(tài)請(qǐng)求和靜態(tài)請(qǐng)求分離開來,動(dòng)態(tài)請(qǐng)求由tomcat處理,靜態(tài)請(qǐng)求由nginx處理。這樣就提高了資源解析速度!
nginx的配置文件詳解就去看第一篇文章。
借鑒文章:
??????nginx學(xué)習(xí),看這一篇就夠了:下載、安裝。使用:正向代理、反向代理、負(fù)載均衡。常用命令和配置文件,很全-CSDN博客
Nginx快速入門-KuangStudy-文章