1 Nginx介紹
Nginx 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,因它的穩(wěn)定性、豐富的功能集、簡(jiǎn)單的配置文件和低系統(tǒng)資源的消耗而聞名,其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),能夠支持高達(dá)5w并發(fā)連接,實(shí)際生產(chǎn)環(huán)境中可以支撐2-4萬(wàn)并發(fā)連接數(shù)。
Nginx的所有配置基本都是在nginx.conf文件中進(jìn)行配置。
2.1 安裝nginx(windows安裝方法)
1. 下載Nginx:
http://nginx.org/en/download.html
2. 解壓nginx.rar壓縮包,并進(jìn)入nginx目錄,雙擊nginx.exe啟動(dòng)。
3. 打開瀏覽器訪問 http://127.0.0.1 如果出現(xiàn)以下畫面則表示Nginx啟動(dòng)成功。
-- 驗(yàn)證Nginx是否啟動(dòng)成功
2.2 安裝Nginx(linux安裝方法)
linux服務(wù)安裝Nginx需要提前安裝一些依賴,相比Windows安裝有一些繁瑣,所以給大家提供了一鍵安裝Nginx的腳本
下載腳本鏈接:https://pan.baidu.com/s/1NP5AHq17Djce2_T7tnP4vw?pwd=nzz5
下載下來(lái)后將下圖中的兩個(gè)文件(Nginx安裝包和sh腳本)上傳到服務(wù)器,
然后執(zhí)行./nginx-install.sh即可完成一鍵安裝;Nginx將會(huì)安裝到 /usr/local/nginx。
.sh腳本
如果./nginx-install.sh無(wú)法運(yùn)行則需要設(shè)置文件權(quán)限,執(zhí)行以下命令chmod 755 nginxinstall.sh,然后重新執(zhí)行命令即可。
3 第三節(jié)反向代理
3.1 什么是反向代理
反向代理:指通過代理服務(wù)器(Nginx)來(lái)接受網(wǎng)絡(luò)上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的其它服務(wù)器,并從服務(wù)器上得到的結(jié)果返回給網(wǎng)絡(luò)上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)反向代理服務(wù)器。
反向代理案例
3.2 演示反向代理
1、在nginx.conf中配置反向代理,可直接將以下代碼替換到你本地nginx.conf中
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type Application/octet-stream;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location /a/ {
proxy_pass http://127.0.0.1:8080/;
}
location /b/ {
proxy_pass http://127.0.0.1:8081/;
}
}
}
2、后臺(tái)啟動(dòng)兩個(gè)端口8080和8081;
3、 瀏覽器分別訪問127.0.0.1/a/${接口路徑} 127.0.0.1/b/${接口路徑} 查看效果。
4 Nginx轉(zhuǎn)發(fā)路徑拼接規(guī)則
location中攔截參數(shù)結(jié)尾帶/和不帶/區(qū)別 ?
例如:location /a 和 /a/有什么區(qū)別 ?
- 當(dāng)結(jié)尾加上了/,相當(dāng)于是絕對(duì)根路徑,則nginx不會(huì)把location中匹配的路徑部分代理走;
- 如果沒有/,則會(huì)把匹配的路徑部分也給代理走。
5 第五負(fù)載均衡
5.1 什么是負(fù)載均衡、故障轉(zhuǎn)移
負(fù)載均衡
按照一定的算法【權(quán)重、輪詢、IP綁定】,將客戶端請(qǐng)求轉(zhuǎn)發(fā)到不同應(yīng)用服務(wù)器上,減輕單個(gè)服務(wù)器壓力,提高系統(tǒng)并發(fā)量。
故障轉(zhuǎn)移
通過心跳檢測(cè)的方式,判斷應(yīng)用服務(wù)器當(dāng)前是否可以正常工作,如果服務(wù)器期宕掉,自動(dòng)將請(qǐng)求發(fā)送到其他正常的應(yīng)用服務(wù)器。
如果檢查到發(fā)生故障的應(yīng)用服務(wù)器恢復(fù)工作,則會(huì)重新加入負(fù)載均衡隊(duì)列進(jìn)行工作。
5.2 負(fù)載均衡的三種策略
1. 輪詢(默認(rèn))
將請(qǐng)求按順序輪流均勻的分配到后端服務(wù)器上。
upstream testserver {
server 127.0.0.1:8080;
server 127.0.0.1:8180;
}
2. IP綁定
按照訪問ip的hash結(jié)果進(jìn)行取模運(yùn)算,得到的結(jié)果便是客服端要訪問服務(wù)器,可以解決session的問題。
upstream testserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8180;
}
3. 指定權(quán)重
指定輪詢幾率,weight越大,負(fù)載的權(quán)重就越大,用于后端服務(wù)器性能不均的情況。
upstream testserver {
server 127.0.0.1:8080 weight=10;
server 127.0.0.1:8180 weight=10;
}
5.3 演示負(fù)載均衡&故障轉(zhuǎn)移(輪訓(xùn))
- 在nginx.conf中配置,可直接將以下代碼替換到你本地nginx.conf中
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 65;
#輪訓(xùn)負(fù)載均衡
upstream testserver {
server 127.0.0.1:8080;
server 127.0.0.1:8180;
}
server {
listen 80;
server_name localhost;
location /a/ {
proxy_pass http://testserver/;
}
}
}
2.后臺(tái)啟動(dòng)兩個(gè)端口8080和8180;
3.瀏覽器多次訪問127.0.0.1/a/${接口路徑}查看輪訓(xùn)效果。






