國(guó)外網(wǎng)站 服務(wù)器青島seo排名公司
目錄
- 1.前端發(fā)送的請(qǐng)求,是如何請(qǐng)求到后端服務(wù)的
- 1.nginx 反向代理的好處:
- 2.nginx 反向代理的配置方式:
- 3. nginx 負(fù)載均衡的配置方式
1.前端發(fā)送的請(qǐng)求,是如何請(qǐng)求到后端服務(wù)的
1.nginx 反向代理的好處:
-
提高訪問(wèn)速度
因?yàn)閚ginx本身可以進(jìn)行緩存,如果訪問(wèn)的同一接口,并且做了數(shù)據(jù)緩存,nginx就直接可把數(shù)據(jù)返回,不需要真正地訪問(wèn)服務(wù)端,從而提高訪問(wèn)速度。
-
進(jìn)行負(fù)載均衡
所謂負(fù)載均衡,就是把大量的請(qǐng)求按照我們指定的方式均衡的分配給集群中的每臺(tái)服務(wù)器。
-
保證后端服務(wù)安全
因?yàn)橐话愫笈_(tái)服務(wù)地址不會(huì)暴露,所以使用瀏覽器不能直接訪問(wèn),可以把nginx作為請(qǐng)求訪問(wèn)的入口,請(qǐng)求到達(dá)nginx后轉(zhuǎn)發(fā)到具體的服務(wù)中,從而保證后端服務(wù)的安全。
2.nginx 反向代理的配置方式:
server{listen 80;server_name localhost;# 反向代理,處理管理端發(fā)送的請(qǐng)求location /api/{proxy_pass http://localhost:8080/admin/; #反向代理}
}
proxy_pass:該指令是用來(lái)設(shè)置代理服務(wù)器的地址,可以是主機(jī)名稱,IP地址加端口號(hào)等形式。
如上代碼的含義是:監(jiān)聽(tīng)80端口號(hào), 然后當(dāng)我們?cè)L問(wèn) http://localhost:80/api/…/…這樣的接口的時(shí)候,它會(huì)通過(guò)
location /api/ {} 這樣的反向代理到 http://localhost:8080/admin/上來(lái)。
當(dāng)在訪問(wèn)http://localhost/api/employee/login,nginx接收到請(qǐng)求后轉(zhuǎn)到http://localhost:8080/admin/,故最終的請(qǐng)求地址為http://localhost:8080/admin/employee/login,和后臺(tái)服務(wù)的訪問(wèn)地址一致。
3. nginx 負(fù)載均衡的配置方式
當(dāng)如果服務(wù)以集群的方式進(jìn)行部署時(shí),那nginx在轉(zhuǎn)發(fā)請(qǐng)求到服務(wù)器時(shí)就需要做相應(yīng)的負(fù)載均衡。
負(fù)載均衡本質(zhì)是基于反向代理實(shí)現(xiàn)的,最終都是轉(zhuǎn)發(fā)請(qǐng)求。
nginx 負(fù)載均衡的配置方式:
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;
}
server{listen 80;server_name localhost;location /api/{proxy_pass http://webservers/admin;#負(fù)載均衡}
}
upstream:如果代理服務(wù)器是一組服務(wù)器的話,我們可以使用upstream指令配置后端服務(wù)器組。
如上代碼的含義是:監(jiān)聽(tīng)80端口號(hào), 然后當(dāng)我們?cè)L問(wèn) http://localhost:80/api/…/…這樣的接口的時(shí)候,它會(huì)通過(guò) location /api/ {} 這樣的反向代理到 http://webservers/admin,根據(jù)webservers名稱找到一組服務(wù)器,根據(jù)設(shè)置的負(fù)載均衡策略(默認(rèn)是輪詢)轉(zhuǎn)發(fā)到具體的服務(wù)器。
注:upstream后面的名稱可自定義,但要上下保持一致。
nginx 負(fù)載均衡策略:
名稱 | 說(shuō)明 |
---|---|
輪詢 | 默認(rèn)方式 |
weight | 權(quán)重方式,默認(rèn)為1,權(quán)重越高,被分配的客戶端請(qǐng)求就越多 |
ip_hash | 依據(jù)ip分配方式,這樣每個(gè)訪客可以固定訪問(wèn)一個(gè)后端服務(wù) |
least_conn | 依據(jù)最少連接方式,把請(qǐng)求優(yōu)先分配給連接數(shù)少的后端服務(wù) |
url_hash | 依據(jù)url分配方式,這樣相同的url會(huì)被分配到同一個(gè)后端服務(wù) |
fair | 依據(jù)響應(yīng)時(shí)間方式,響應(yīng)時(shí)間短的服務(wù)將會(huì)被優(yōu)先分配 |
具體配置方式:
輪詢:
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;
}
weight:
upstream webservers{server 192.168.100.128:8080 weight=90;server 192.168.100.129:8080 weight=10;
}
ip_hash:
upstream webservers{ip_hash;server 192.168.100.128:8080;server 192.168.100.129:8080;
}
least_conn:
upstream webservers{least_conn;server 192.168.100.128:8080;server 192.168.100.129:8080;
}
url_hash:
upstream webservers{hash &request_uri;server 192.168.100.128:8080;server 192.168.100.129:8080;
}
fair:
upstream webservers{server 192.168.100.128:8080;server 192.168.100.129:8080;fair;
}